2011-03-08 197 views
2

可能重複:
=== vs. == in Ruby紅寶石比較對象

我想知道有什麼區別的==和Ruby中===比較之間?什麼時候使用哪種通用定義?

+1

可能的重複:http://stackoverflow.com/questions/3422223/vs-in-ruby |他們沒有關係。一個是平等另一個是包容。 – phwd

+0

@Philippe你是對的,這將是我的答案,但我找不到它,當我搜索它.. – Mark

+0

不用擔心,我發現它運氣...我正在測試不同的方式來搜索字符在這裏。 – phwd

回答

0

==用於條件語句中的相等性,如if,除非等===用於確定case語句中的相等性。

1

'==='是比等號'=='更廣泛(更弱)的概念。 '==='不僅在平等的情況下成爲現實,而且在諸如匹配正則表達式,成爲類的實例等概念之下也是如此。儘管sarnold說了什麼,但我確實使用'==='作爲簡寫'kind_of?'。其中A是一類,

A === a 

可以用作

a.kind_of?(A) 

有一件事要小心的速記是,儘管它的外觀,它是不可交換的。所以,

a === A 

將無法​​正常工作。