我喜欢ruby的一件事是,它主要是一种非常易读的语言(非常适合自我记录的代码)
然而,受到这个问题的启发:Ruby Code解释
并描述了如何||=在ruby中工作,我正在考虑我不使用的ruby习语,坦率地说,我并没有完全理解它们.
所以我的问题是,类似于引用问题的例子,我需要注意哪些常见但不明显的红宝石成语才能成为一名真正熟练的红宝石程序员?
顺便说一句,从引用的问题
a ||= b
Run Code Online (Sandbox Code Playgroud)
相当于
if a == nil || a == false
a = b
end
Run Code Online (Sandbox Code Playgroud)
(感谢Ian Terrell的更正)
编辑:事实证明,这一点并非完全没有争议.事实上正确的扩张
(a || (a = (b)))
Run Code Online (Sandbox Code Playgroud)
请参阅以下链接了解原因:
感谢JörgWMittag指出这一点.
可能重复:
运算符|| =在ruby中代表什么?
我||=对Rails 中运算符的使用感到困惑.我在网上找不到任何有用的东西.有人可以指导我吗?
如果有任何您知道的网络链接,请告诉我.
我想要以下声明的含义:
@_current_user ||= session[:current_user_id] &&
User.find(session[:current_user_id])
Run Code Online (Sandbox Code Playgroud)