目录

Lua和C比较

Lua和C#比较

C#Lua
语言类型编译型语言 静态类型语言解释型语言 动态类型语言
代码执行顺序无要求从上到下执行

代码注释

C#Lua
单行注释//
多行注释/* */–[[ –]], –[[ ]]–,–[[ ]]–
文档注释///

代码格式

C#Lua
分隔符是必须的不是必须的
指定变量类型是必须的不能指定,并且声明后还可以被赋不同类型的值
是否有char类型没有

字符串

C#Lua
字符串的声明使用双引号""使用双引号"“或单引号’‘或双方括号[[ ]]
是否有char类型没有
是否可以通过索引器[]访问字符串中的字符可以不可以
字符串的连接+..

C#默认初始索引是从0开始,Lua默认是以1开始

函数

C#Lua
多返回值借助ref或out可以支持
多参数params关键字使用变长参数…

运算符

相同

算数运算符+,-,*,/
关系运算符<,>,<=,>=,==
赋值运算符=
移位运算符«,»

不同

C#Lua
复合赋值运算符+=,-=,*=,/=,%=
关系运算符!=~=
逻辑运算符&&,
整除除法(floor除法)//(四舍五入取整数)
自增自减++,–
条件运算符?:

C#中^代表异或运算符,在Lua中代表幂运算

面向对象

C#Lua
封装性类和访问修饰符table local
继承继承基类实现单继承,继承接口实现多继承table 元方法__index方法
多态重载和重写不支持重载,通过table,元方法表现多态