我一直在努力做的红宝石的字符串对比这似乎没有工作无法做到红宝石字符串对比
max == "value"
if user.name == max
我也尝试使用EQL方法,但似乎没有任何工作
max.eql(user.name)
尽管数值相同,但这不起作用。 可能是什么原因?
我一直在努力做的红宝石的字符串对比这似乎没有工作无法做到红宝石字符串对比
max == "value"
if user.name == max
我也尝试使用EQL方法,但似乎没有任何工作
max.eql(user.name)
尽管数值相同,但这不起作用。 可能是什么原因?
这是因为空白。尝试做
if user.name.strip == max
条会删除所有的空格
红宝石使用相同的语义为C,当涉及到分配与比较。
x = y
即使这是一个表达if
内部完成将分配x
的y
值。
使用eql
(这确实应该是eql?
)将失败,因为x.eql?(y)
回报true
第二次尝试,如果x
和y
是相同对象。它们具有相同的价值是不够的。
请注意,在像Ruby这样的语言中,许多变量可以绑定到同一个对象。如果以破坏性方式更新对象,这将反映在绑定到同一对象的所有变量上。另一方面,即使该对象恰好与第一个对象具有相同的值,它也不会影响绑定另一个对象的变量。
更新:在此答案发布后,发布者更改了问题。
尝试使用==而不是= –