布尔函数参数和返回

Posted

技术标签:

【中文标题】布尔函数参数和返回【英文标题】:Boolean function arguments and returning 【发布时间】:2016-09-18 05:21:41 【问题描述】:

所以我知道你可以在 lua 中做这样的事情来缩短你的代码,这样你就不必做不必要的 if 语句

function checkMath(equation)
        if equation == 4 then
                return true
        end
        return false
end

workspace.Part.BrickColor = BrickColor.Green() or BrickColor.Red()

但是有没有办法为函数内的 return 语句做到这一点?

基本上,我要问的是:如果 returnItems 为真,是否可以返回数量和项目,或者如果 returnItems 为假,则仅返回数量,而不使用 if 语句?

我想做什么(尚未测试):

countDictItems = function(tab,returnItems) 
    local amount = 0    
    local items = 
    for _, ind in pairs(tab) do
        amount = amount + 1
    end
    return amount, items or amount
end

【问题讨论】:

【参考方案1】:

在我发布在另一个网站上的单独线程中回答。

function blah(returnitems)
amount = 15
items = "blah1", "blah2"
return amount, returnitems and items or nil
end

print(blah(true))
print(blah(false))

输出:

>15 table: 0x9e26e0
>15 nil

【讨论】:

以上是关于布尔函数参数和返回的主要内容,如果未能解决你的问题,请参考以下文章

始终返回相同布尔值的 Python 函数

javascript Boolean

函数不返回正确的布尔值

ES6---解构赋值(数组对象字符串数值和布尔值函数参数)

ES6必知必会 —— 字符串和函数的拓展

Oracle 函数中的布尔参数