gpt4 book ai didi

ruby - 使用 && ("and") 就像在 ruby 中一样?

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:17 26 4
gpt4 key购买 nike

从一些个人实验中,我发现 ruby​​ "and"/"&&"的行为似乎类似于 if 语句。

  condition && action

似乎和

做的一样
  if condition
action
end

这些是等价的吗?

最佳答案

因为&&短路了

a && b。如果 a 的计算结果为 false,则无论 b 是什么,表达式都是 false,因此为避免浪费时间,b 不会被计算。 b 仅在 a 计算结果为真时才需要计算。

||(“或”)也有类似的短路行为。你能算出它是什么吗?

[编辑]

正如 Holger 刚刚指出的那样,when I say a "true" value in Ruby, I mean any truthy value, and when I mention a "false" value in Ruby, I mean any falsey value .也就是说,truefalse 不是 Ruby 中唯一的真值和假值。事实上,Ruby 中除了 nilfalse 之外的每个值都是真值,只有这两个异常(exception)是假值。请注意,字符串 "false" 和数字 0 不是这两个异常之一,因此它们实际上是真实的。

我们现在可以完整地描述a && b的行为:

  • 如果 a 的计算结果为假值,则 a && b 返回 a 的值,同时 b 未评估。
  • 如果 a 的计算结果为真值,则 a && b 返回 b 的值,结果 ab 正在评估。

关于ruby - 使用 && ("and") 就像在 ruby 中一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45970492/

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