我想知道 Lua 中分号的使用是否有通用约定,如果有,我应该在哪里/为什么使用它们?我有编程背景,因此用分号结束语句在直觉上似乎是正确的。然而,我担心为什么它们是“可选”
,因为人们普遍认为分号在其他编程语言中结束语句。也许有一些好处?
例如:来自 lua programming guide ,这些都是可以接受的、等价的且语法准确的:
a = 1
b = a*2
a = 1;
b = a*2;
a = 1 ; b = a*2
a = 1 b = a*2 -- ugly, but valid
作者还提到:通常,我只使用分号来分隔同一行中编写的两个或多个语句,但这只是一种约定。
这是 Lua 社区普遍接受的,还是有其他大多数人喜欢的方式?还是就我个人喜好那么简单?
最佳答案
Lua中的分号一般只有在一行中写入多个语句时才需要。
例如:
local a,b=1,2; print(a+b)
也可以写为:
local a,b=1,2
print(a+b)
在我的脑海中,我不记得在 Lua 中任何其他时候我不得不使用分号。
编辑:查看 lua 5.2 引用资料,我看到另一个常见的地方,您需要使用分号来避免歧义 - 您有一个简单的语句,后跟一个函数调用或括号来对复合语句进行分组。这是位于 here 的手动示例:
--[[ Function calls and assignments can start with an open parenthesis. This
possibility leads to an ambiguity in the Lua grammar. Consider the
following fragment: ]]
a = b + c
(print or io.write)('done')
-- The grammar could see it in two ways:
a = b + c(print or io.write)('done')
a = b + c; (print or io.write)('done')
关于Lua 分号约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16862337/