【问题标题】:Ruby question mark operator, what does this mean? [duplicate]Ruby问号运算符,这是什么意思? [复制]
【发布时间】:2021-07-12 23:46:40
【问题描述】:

这可能是一个非常模糊的问题。但我想知道是否有人可以将其翻译成伪代码:

a = (1 + (bool ? rand(13) : 0)

这是否意味着a 将变为0-13 + 1 之间的任何值?布尔值和问号的作用是什么?

【问题讨论】:

  • 布尔值和问号的用途是什么?我认为它没有任何意义,除非它被替换为变量。否则就像你提到的,a 等于 1 加上 0 到 12(含)之间的随机数。
  • 谢谢塞巴斯蒂安!我将更改我的帖子以使问题更清楚。
  • @loopy :我们不知道相关代码是否包含“布尔”值,特别是因为 Ruby 没有“布尔”数据类型。我们只知道bool是一些变量或无参数的方法,它(由于三元if运算符)在布尔上下文中进行评估,即被视为trueishfalsy - 如果它的值为falsenil,则为后者。

标签: ruby


【解决方案1】:
  1. (true ? rand(13) : 0) 意思是 (if true then rand(13) else 0 end)

如果条件中直接有“true”,则永远不会调用“else”(没用),您可以直接写:a = 1 + rand(13) ;)

  1. rand(13) 给出 0 到 12 之间的随机整数;) 如果你想要“13”,请输入rand(14) 我个人总是这样使用范围(所有范围都包括在内,更容易理解):rand(0..13)

【讨论】:

  • 非常感谢!我将它从一个布尔变量更改为true 只是为了简单的问题。但是非常感谢您的解释!它清除了一切:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
  • 2017-11-01
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
相关资源
最近更新 更多