Ruby问号运算符,这是啥意思? [复制]

Posted

技术标签:

【中文标题】Ruby问号运算符,这是啥意思? [复制]【英文标题】: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(含)之间的随机数。 谢谢塞巴斯蒂安!我将更改我的帖子以使问题更清楚。 见ternary if @loopy :我们不知道相关代码是否包含“布尔”值,特别是因为 Ruby 没有“布尔”数据类型。我们只知道bool是一些变量或无参数的方法,它(由于三元if运算符)在布尔上下文中进行评估,即被视为trueishfalsy - 如果它的值为falsenil,则为后者。 【参考方案1】:
    (true ? rand(13) : 0) 意思是 (if true then rand(13) else 0 end)

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

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

【讨论】:

非常感谢!我将它从一个布尔变量更改为true 只是为了简单的问题。但是非常感谢您的解释!它清除了一切:)

以上是关于Ruby问号运算符,这是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

问号和点运算符是啥意思?在 C# 6.0 中是啥意思?

c语言中":"(冒号)和问号是啥意思

运算符 ||= 在 Ruby 中代表啥? [复制]

PHP中?:啥意思

c语言中" : "(冒号)和问号是啥意思

在 C# 中,两个问号一起意味着啥?