2011-12-02 33 views
-3

我一直在努力做的红宝石的字符串对比这似乎没有工作无法做到红宝石字符串对比

max == "value" 
if user.name == max 

我也尝试使用EQL方法,但似乎没有任何工作

max.eql(user.name) 

尽管数值相同,但这不起作用。 可能是什么原因?

+1

尝试使用==而不是= –

回答

0

这是因为空白。尝试做

if user.name.strip == max 

条会删除所有的空格

0

红宝石使用相同的语义为C,当涉及到分配与比较。

x = y 

即使这是一个表达if内部完成将分配xy值。

使用eql(这确实应该是eql?)将失败,因为x.eql?(y)回报true第二次尝试,如果xy相同对象。它们具有相同的价值是不够的。

请注意,在像Ruby这样的语言中,许多变量可以绑定到同一个对象。如果以破坏性方式更新对象,这将反映在绑定到同一对象的所有变量上。另一方面,即使该对象恰好与第一个对象具有相同的值,它也不会影响绑定另一个对象的变量。

更新:在此答案发布后,发布者更改了问题。