我在一个例子中遇到了红宝石
def role?(role)
return !!self.roles.find_by_name(role.to_s.camelize)
end
Run Code Online (Sandbox Code Playgroud)
你为什么要用!!?是不是一样的
return self.roles.find_by_name(role.to_s.camelize)
Run Code Online (Sandbox Code Playgroud)
添加双重感叹号是否会为评估添加一些内容?
看完这些表达式的行为后:
1 and 0 #=> 0
0 and 1 #=> 1
1 and true #=> true
0 and true #=> true
Run Code Online (Sandbox Code Playgroud)
对我而言,它更像是ruby返回逻辑门的右侧值,而不管逻辑表达式的求值结果如何。我正在寻找原因。