【发布时间】:2021-08-28 20:40:45
【问题描述】:
我需要编写一些 Lua 代码,但我有 C 背景,一些常见的做法和编程策略对我来说似乎很不寻常。也就是说,我编写了一些代码来说明我遇到的问题:
local someFunction(myName)
local fallbackTable = {name = ""}
local myTable = getTableOrReturnNil(someArgument) or fallbackTable
local otherName = myTable["name"]
--other code that is irrelevant
end
我的问题专门针对local myTable = getTableOrReturnNil(someArgument) or fallbackTable 行。据我了解,如果来自 getTableOrReturnNil() 的返回值返回 nil,则此表达式将评估为 fallbackTable。值得一提的是,我无法控制函数getTableOrReturnNil()。这是一种常见的做法,还是有更标准的方法可以安全地执行local otherName = myTable["name"],而不必担心myTable 是否为零。我可以求助于使用 if 链,但如果可能的话,我宁愿避免这种情况。
【问题讨论】: