gpt4 book ai didi

ruby-on-rails - 如何使用嵌套 if 语句从 if 语句设置变量

转载 作者:行者123 更新时间:2023-12-01 22:56:42 26 4
gpt4 key购买 nike

谁能解释为什么变量anil

a = if true
"domain" if true
"nilr" if nil
end

但这里 a 返回 "domain"

a = if true
"domain" if true
"nilr" if nil
end

puts a.class

最佳答案

Ruby 评估 block 的每个元素并隐式返回要运行的最后一条语句的结果。在这种情况下,它是 if nil 测试,它将失败,因此返回 nil

您的代码,经过简化,在 Ruby 中看起来像:

a = begin
"domain"
nil
end

该 block 末尾有一个 nil,因此计算结果为 nil

如果要分支:

a = if true
if false
"domain"
elsif nil
"nilr"
end
end

虽然这段代码仍然毫无意义,因为在您的 if 上没有表达式改变结果将始终相同。

你可能想要的实际上是这样的:

a = case x
when true
"domain"
when nil
"nilr"
end

a 将根据 x 的不同取不同的值。

关于ruby-on-rails - 如何使用嵌套 if 语句从 if 语句设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73030425/

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