gpt4 book ai didi

ruby - 有人可以向我解释以下代码吗?

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

我正在阅读 Rails 3 in Action 一书,它正在讨论在模型中覆盖 to_s。代码如下:

def to_s
"#{email} (#{admin? ? "Admin" : "User"})"
end

我知道在 Ruby 中您可以通过 "#{value}" 在双引号内显示​​一个值,但是双问号是怎么回事?

最佳答案

string interpolation . "#{email} (#{admin? ? "Admin": "User"})" 等同于

email.to_s + " (" + (admin? ? "Admin" : "User") + ")"

也就是

email.to_s + " (" + if admin? then "Admin" else "User" end + ")"

由于用引号引起来,在此上下文中 AdminUser 用作字符串而不是常量。

关于ruby - 有人可以向我解释以下代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867122/

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