匿名
未登录
讨论
暗色模式
贡献
创建账号
登录
滚动的天空Wiki
搜索
编辑“
Help:Lua
”(章节)
来自滚动的天空Wiki
命名空间
帮助
讨论
更多
更多
语言
变体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
页面操作
阅读
编辑源代码
历史
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
== 运算 == 和大多数语言一样,Lua支持'''算术运算'''。其中,除以零不会出错,会得到inf或nan。模运算的定义为{{code|code=a % b == a - math.floor( a / b ) * b|lang=lua}},例如-4%3会返回2而非-1。幂运算的符号为<code>^</code>。对字符串进行算数运算,会尝试使用tonumber函数转化为数字,如无法转换则会抛出错误。 '''关系运算'''包括<code>==</code>、<code>~=</code>、<code><</code>、<code>></code>、<code><=</code>和<code>>=</code>,运算结果一定是布尔值。对于<code>==</code>,不同类型的数据比较为false。注意表或函数的比较会比较指针,当两个值指向同一个表或函数时才会返回true,除非受元表影响。 '''逻辑运算'''包括<code>and</code>、<code>or</code>和<code>not</code>。注意:逻辑运算的结果不一定是布尔值,且进行逻辑运算时,并不会提前把所有值算出来,例如{{code|3 or error()}}的值为3,不会抛出错误。可以使用逻辑运算来组成'''“三元运算”''',例如{{code|code=a and b or c|lang=lua}}相当于JavaScript、Julia或Java中的{{code|code=a ? b : c|lang=java}}或Python中的{{code|code=b if a else c|lang=python}},前提是b不能为false。 对两个字符串进行'''连接运算'''的方式是{{code|a .. b|lang=lua}},而非{{code|a + b|lang=java}}或{{code|a * b|lang=julia}}。可以对数字进行连接,连接时会尝试转化为字符串。注意:Lua的字符串是不可变的(immutable),而且Lua不提供任何类型的“字符串构造器(string builder)”,所以反复进行{{code|code=a = a .. b|lang=lua}}会多次创建新的字符串,并最终将旧字符串作为垃圾收集。如果许多字符串都需要连接,则应使用[[Help:Lua/string#format|string.format]],或将所有的字符串添加到一个数组然后最后使用table.concat()连接。 {{code|#a|lang=lua}}可以获取字符串或者数组a的'''长度'''。对于字符串,会获取其字节数,类似于string.len,获取字符数可以使用函数[[Help:Lua/mw.ustring#len|mw.ustring.len]]。对于表,只会获取其数组部分的长度,其他部分的字段一律忽略(对于{{code|{1, 2, nil, 4}|lang=lua}}这样的稀疏数组,其长度是其边界中的某一个,例如可能为2或4<ref>需要留意这种情况,因为会导致一些不确定性。</ref>),如需获取表中所有字段的个数,应使用一次for循环,或导入[[模块:TableTools]]并使用其中的size函数。 对于表,上述所有运算都可以通过[[#元表]]控制。 === 优先级 === Lua中,各运算的优先级如下: # <code>^</code> # <code>not</code> <code>#</code> <code>-</code>(负号) # <code>*</code> <code>/</code> <code>%</code> # <code>+</code> <code>-</code>(减号) # <code>..</code> # <code><</code> <code>></code> <code><=</code> <code>>=</code> <code>~=</code> <code>==</code> # <code>and</code> # <code>or</code> 此外,对于同级运算,<code>a/b/c</code>相当于<code>(a/b)/c</code>,<code>a^b^c</code>相当于<code>a^(b^c)</code>。
摘要:
请注意您对滚动的天空Wiki的所有贡献都被认为是在Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)下发布,请查看在
Project:版权
的细节。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
Cookie帮助我们提供我们的服务。通过使用我们的服务,您同意我们使用cookie。
更多信息
确定
导航
导航
首页
最近更改
随机页面
所有页面
帮助
格式
互助客栈
Wiki条例
管理员告示板
工具
导入页面
展开模板
创建或编辑任意页面
参数设置
Wiki工具
Wiki工具
特殊页面
页面值
获取缩短的URL
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志
其他项目
变体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體