[8] pry(#<Plan>)> self[:total_outstanding]||0 / self.dd_amount
=> 10100.0
[9] pry(#<Plan>)> self[:total_outstanding]||0
=> 10100.0
[10] pry(#<Plan>)> self.dd_amount
=> 900.0
[11] pry(#<Plan>)> self[:total_outstanding].to_i||0/self.dd_amount.to_i
=> 10100
self [:total_outstanding] .to_i || 0 / self.dd_amount.to_i应该重新引用11而不是10100这个第一个属性的值
我正在尝试在pry会话中调试它
当代码运行时,它确实将值视为10100,这是错误的。
答案 0 :(得分:4)
OR运算符(||
)的优先级低于除法运算符(/
)。
Ruby正在解释你的最后一行:
self[:total_outstanding].to_i || (0/self.dd_amount.to_i)
这只会返回self[:total_outstanding].to_i
,因为它是一个真正的价值。
将self[:total_outstanding].to_i||0
组合在一起:
(self[:total_outstanding].to_i||0) / self.dd_amount.to_i