我意识到Ruby中的and
和&&
之间存在差异(这是一个令人困惑的句子)。
@show_votes = !current_user.nil? and current_user.is_admin?
if @show_votes
#code assumes everyone logged in is admin
end
鉴于:
@show_votes = !current_user.nil? && current_user.is_admin?
if @show_votes
#code assumes only admin is admin
end
两个运营商之间有什么区别?我发现它们具有不同的操作优先级,但仍然无法弄清楚真正的区别是什么。
(该应用程序是用Rails编写的。虽然我希望在Sinatra中也能发生同样的事情,因为这很可能与Ruby语言有关)
编辑代码以更好地反映情况。