是否有更简单的方法来写这个而不用放在函数里?

我几乎每行都这样写:

if printAll then print("message for debugging") end

有没有一种能够更好地 语法糖 这个,不用放在函数里的方法?

local function cPrint(text)  --条件打印
  if printAll then
    print(text)
  end
end

cPrint("message for debugging")

因为这个函数必须经常传递一个变量才能发现它不需要。由于 printAll 通常为 false,这种资源的误用并不是我想要的。这个函数每分钟可能运行数百万次,传递一个只会被丢弃的参数使用内存只是感觉不好。

因此,在传递参数之前丢弃这个条件的方法是否更好看一些?(主要原因是带有以 'if' 开头的行这样的嵌套 if-else 结构更加令人困惑。)

原文链接 https://stackoverflow.com/questions/71297545

点赞
stackoverflow用户107090
stackoverflow用户107090
这个对你有用吗?

local cPrint if printAll then cPrint=print else cPrint=function()end end


这样可以省去`if`的执行,但是函数调用不能避免。

以下是另一种替代方法,它执行了一个隐藏的`if`,但避免了函数调用:

_ = printAll and print("用于调试的消息")


它实际上与以下代码没有什么区别:

if printAll then print("用于调试的消息") end

```

2022-02-28 15:58:14