gpt4 book ai didi

lua - Lua 是否像 Swift 或 C# 中那样具有 variable?.function() 之类的东西?

转载 作者:行者123 更新时间:2023-12-05 00:00:40 28 4
gpt4 key购买 nike

大家好!

我最近在用 Lua 编程,厌倦了写一些像这样的代码

if variable ~= nil then
variable.function()
end


我知道在 C# 或 Swift 中,我们可以做类似的事情

variable?.function()

Lua 是否有一些方法来实现这种功能?

最佳答案

摘自“Programming in Lua”,第 4 版,“Tables”部分:

Lua does not offer a safe navigation operator, and we do not think it should. Lua is minimalistic. Moreover, this operator is quite controversial, with many people arguing —not without some reason— that it promotes careless programming. However, we can emulate it in Lua with a bit of extra notation.

建议的额外符号可能适合您的情况;

((variable or {}).func or function() end)()

这会检查 variable 是否为 nil(或 false),如果不是,则尝试访问其条目 func(请注意,您不能将函数命名为 function,因为那是一个关键字)- 如果它不存在,它会返回一个什么都不做的函数,否则它会返回函数 变量。功能。立即调用生成的函数。

不过我认为这不是很可读。

关于lua - Lua 是否像 Swift 或 C# 中那样具有 variable?.function() 之类的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57686395/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com