【发布时间】:2017-04-01 17:33:25
【问题描述】:
placeholder = f()
if placeholder then return placeholder end
这感觉很不雅,用这么多单词用两行做这么简单的任务感觉很奇怪。有没有更简洁/“更好”的方式来写这个?
一个有用的例子是:
for f in pairs(listOfFunctions) do
placeholder = f()
if placeholder then return f() end
end
【问题讨论】:
-
没有捷径。这就是 Lua 的本质。
-
你能举一个更大的例子,更多的上下文吗?如果这是你的整个函数体,考虑到“else”分支无论如何都是虚无的,它可以很容易地简化为
return f()或return f() or nil(如果你想避免返回false)。return f() or (function () return .... end)()可用于创建瀑布,但这有点难看。一般来说,不,没有办法'return result only if result'. -
你想要高效的代码还是漂亮的代码?