Lua和C比较
约 628 字
预计阅读 2 分钟
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,元方法表现多态 |