gpt4 book ai didi

ruby - 为什么 if (a,b = [nil, nil]) 在 Ruby 中是真实的?

转载 作者:行者123 更新时间:2023-12-03 21:10:53 24 4
gpt4 key购买 nike

我现在在学Ruby,不太明白为什么要测试条件

if (a,b = [nil, nil]) # <--
true
else
false
end

评估为真,而

if (a,b = nil) # <--
true
else
false
end

如所宣传的那样是虚假的。

通过 irb 在 ruby​​ 2.5 和 2.7 上测试。为您的复制粘贴测试添加了完整的 if-else 语句。

最佳答案

赋值的计算结果与赋值的右操作数相同。这对于解构赋值仍然适用。

所以 a,b = [nil, nil] 的计算结果为 [nil, nil],这是真实的,因为它是一个数组,而数组是真实的,而 a,b = nil 计算结果为 nil,这是假的。

关于ruby - 为什么 if (a,b = [nil, nil]) 在 Ruby 中是真实的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63957600/

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