Lua和C#比较

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

代码注释

|------|---------|--------------------------------------------|
| | C# | Lua |
| 单行注释 | // | -- |
| 多行注释 | /* */ | --\[ --], --\[ ]--,--\[ ]-- |
| 文档注释 | /// | 无 |

代码格式

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

字符串

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

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

函数

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

运算符

相同

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

不同

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

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

面向对象

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

相关推荐
JustCheng24 分钟前
Dispacher(1/2)深入解析-详细使用
c#
CoderIsArt14 小时前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
呆呆敲代码的小Y1 天前
【游戏开发】Lua 与 C# 交互原理解析
c#·lua·交互·热更新·lua与c#交互·游戏热更新
用户298698530141 天前
PDF 转纯文本(TXT)免费攻略:轻松提取文字内容
人工智能·后端·c#
呆呆敲代码的小Y1 天前
Lua 上值(UpValue)
开发语言·junit·lua·lua上值·upvalue
呆呆敲代码的小Y1 天前
【游戏开发】xLua 性能优化技巧
junit·性能优化·lua·xlua
呆呆敲代码的小Y1 天前
【游戏开发】C# 中的迭代器
java·开发语言·c#·迭代器
曼巴UE51 天前
Unlua UE5.3 调试
ue5·lua·unlua
nvd111 天前
实战:用 Lua 手写 Kong 安全鉴权插件并通过 ArgoCD GitOps 零编译部署到 DbGate 服务
安全·lua·kong