gpt4 book ai didi

ruby - 为什么这个声明是这样的? (放置 ("here") && 中断) vs (放置 "here"&& 中断)

转载 作者:数据小太阳 更新时间:2023-10-29 08:15:22 29 4
gpt4 key购买 nike

语句 1:

[2,4,6,7,8].each do |i|
(i % 2 == 0) || (puts "Not even" && break)
puts i
end

声明 2:

[2,4,6,7,8].each do |i|
(i % 2 == 0) || (puts("not even") && break)
puts i
end

语句 1 中断但不放置,语句 2 放置但不中断

为什么它会这样,我怎样才能把这个表达式写得更好? (我不是说寻找奇怪的 #s,我是说 || && 语句)

最佳答案

声明 1:

Ruby 是这样解释它的:puts("No even"&& break)。所以 breakputs 参数被解析之前执行。


声明 2:

puts("not even") 返回 nil 因此 break 根本不会执行


如果您真的希望它是内联的,我建议您在不使用 && 的情况下编写:(puts "No even"; break)

关于ruby - 为什么这个声明是这样的? (放置 ("here") && 中断) vs (放置 "here"&& 中断),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33034088/

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