为什么关键字“then”和“do”都存在?
if x == 1 do
print(x)
end
和可读性一样
if x == 1 then
print(x)
end
作者说“我们明确地将 Lua 设计为具有简单、熟悉的语法”,并且“if-then”组合通常在许多其他常用编程语言中众所周知(考虑到 Lua 的设计时间大约是 20 年)以前,想想 Basic 或 Pascal)。
这看起来是个好主意,但恕我直言,这不是因为其他选择。
我的意思是,这段代码会变成什么?
if a == 1 then
do_stuff()
else
do_something_else()
end
为了保持连贯性,您可能需要这样的东西,我认为这并不比现状更好:
if a == 1 do
do_stuff()
else do
do_something_else()
end
从数学的角度来看(因为编程是基于数学的)“如果”采用“如果 a 为真,则 b 为真,否则 c 为真”的形式。就数学版本而言,虽然不能轻松地将其移植到编程中,因此对其进行了重新设计以适应环境,因此更适合编程“做”。