【问题标题】:What does to_s with a colon do? [duplicate]带冒号的 to_s 有什么作用? [复制]
【发布时间】:2021-12-22 13:19:08
【问题描述】:

我只是想知道当 to_s 用冒号应用于对象时会发生什么?它应该将单个字母串变成纸牌游戏的符号。有人可以解释这是否正确吗?谢谢!这是一个例子:

def to_s
    revealed? ? value.to_s : " "
end

【问题讨论】:

  • 请将文本作为文本发布,而不是作为文本照片发布。这是一个程序员的网站,而不是摄影师。我们想复制&粘贴&运行你的代码,而不是批评你对颜色和透视的使用。 meta.stackoverflow.com/a/285557/2988idownvotedbecau.se/imageofcode
  • @JörgWMittag 谢谢指正!我很抱歉,因为我是该网站的新手,不会再发生了

标签: ruby


【解决方案1】:

你指的是ternary operator吗?

同理:

if revealed?
  value.to_s
else
 " "
end

【讨论】:

  • 嗨,Balastrong,感谢您如此迅速地回答!哦,我明白了!我没有意识到您可以使用三元运算符添加 else 参数,非常感谢!
  • 不客气^^
【解决方案2】:

这是三元运算符。

condition ? expression-to-evaluate-if-true : expression-to-evaluate-if-false

你的例子相当于:

def to_s
    if revealed?
        value.to_s
    else
        " "
    end
end

换句话说,? : 构造与to_s 没有任何特别的关系。

【讨论】:

  • 是的,我现在明白了!我曾假设“:”属于“to_s”,但没有意识到它等同于三元运算符的 else 语句。谢谢克里斯!
  • 优秀。这是编写这样的表达式的一种很好的简洁方式,但要小心并明智地使用它。如果您必须问自己是否应该使用它而不是常规 if/else,答案可能是“不”。
  • 明白了,非常感谢您的提示!我会记住这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
相关资源
最近更新 更多