打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
lua和其他语言

lua和其他语言一些基本区别 - [LUA]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://cjbskysea.blogbus.com/logs/45069166.html

类型

 

  • 在控制结构的条件中除了false和nil为假,其他值都为真。
  • Lua的numbers可以处理任何长整数不用担心误差。
  • Lua中字符串是不可以修改的.1M的string在Lua中是很常见的。
  • ..在Lua中是字符串连接符,当在一个数字后面写..时,必须加上空格以防止被解释错。
  • 函数可以存储在变量中.

 

运算符

 

  • and和or的运算结果不是true和false,而是和它的两个操作数相关。

 

 

  • 第一个元素索引为1.不推荐数组下标从0开始,否则很多标准库不能使用。
  • 表中的key和value可以为任意类型.

 

变量与赋值

 

  • 代码块:指一个控制结构内,一个函数体,或者一个chunk(变量被声明的那个文件或者文本串)。
  • 给block划定一个明确的界限:do..end内的部分。

 

循环

 

  • 循环过程中不要改变控制变量的值,那样做的结果是不可预知的。

 

函数

 

  • 一个return语句如果使用圆括号将返回值括起来也将导致返回一个值。
  • Lua将函数的参数放在一个叫arg的表中,除了参数以外,arg表中还有一个域n表示参数的个数。
  • 尾调用之后程序不需要在栈中保留关于调用者的任何信息, 尾调用递归的层次可以无限制的。

 

编译

 

  • 如果我们运行一个文件多次的话,loadfile只需要编译一次,但可多次运行。dofile却每次都要编译.
  • Lua把每一个chunk都作为一个匿名函数处理。
  • loadfile和loadstring都不会抛出错误,如果发生错误他们将返回nil加上错误信息.
  • loadstring总是在全局环境中编译他的串。
  • 当错误发生时Lua结束当前的chunk并返回到应用中。

 

MetaTable

 

  • Lua选择metamethod的原则:如果第一个参数存在带有__add域的Metatable则使用他, 和第二个参数无关. 否则看第二个参数是否存在带有__add域的metatable, 有则使用没有则报错.

 

面向对象

 

  • Lua提供了通过使用冒号操作符来隐藏self这个参数的声明。
  • Lua不存在类的概念,每个对象定义他自己的行为并拥有自己的形状(shape)。

收藏到:Del.icio.us




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Lua中的函数(function)、可变参数、局部函数、尾递归优化等实例讲解
Lua变量生命周期(转)
Lua 5.3 参考手册
(1)LUA源码阅读(四)
FreeSWITCH中文Wiki
NULLIF()函数使用讲解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服