gpt4 book ai didi

ruby - "if"条件的位置

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

我认为:

do_something if condition

相当于

if condition
do_something
end

我发现了一个不遵守这条规则的代码。

if !(defined? foo)
foo = default_value
end

这里,foo 采用default_value

foo = default_value if !(defined? foo)

在这里,foo 接受nil。在前面的代码中,我认为 if 是先执行的,应该等同于:

foo = (default_value if !(defined? foo))

如果没有定义变量,有没有办法设置为default_value

一般答案:

一些评论想要使用 ||= 运算符...如果 foonil 将不起作用:

foo ||= default_value

将返回默认值,而 foo 已定义。

我坚持使用“not defined?”,它不等于nil

最佳答案

Ruby 的方式是

foo ||= default_value

但是,当然

if (defined? foo)
foo = default_value
end

foo = default_value if !(defined? foo)

是不同的。你不是在比较同一件事。

一个比较(defined?foo),另一个比较!(defined?foo)

我认为你真正追求的是以下内容

if !(defined? foo)
foo = default_value
end

关于ruby - "if"条件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231518/

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