gpt4 book ai didi

ruby-on-rails - ||之间的差异并内联 if 语句?

转载 作者:太空宇宙 更新时间:2023-11-03 17:10:27 25 4
gpt4 key购买 nike

之间有什么区别(性能?语义?可读性?)
def test
x ? x : y
end

def test
x || y
end?

还想询问在这种情况下的最佳做法。

最佳答案

你的第二个例子更符合 Ruby 的习惯。

def test
x || y
end

它使用 short circuit evaluation返回比较中的第一个“真实”值。此运算符与三元运算符之间的性能提升可能被忽略了。

根据经验,我会说我在 Ruby 中并不经常看到三元运算符。上述 x || 的一种情况y 表单在您要选择非空字符串时不起作用。在 Ruby 中 "" 是真实的,所以 ""|| “abc” 将为 true。在这种情况下,三元运算符(或常规 if 语句)会工作得很好:

str.empty? ? "abc" : str

引用资料:

关于ruby-on-rails - ||之间的差异并内联 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25560831/

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