Adr*_*ian 24
两者都只是在对象上调用的方法.这意味着对象决定了哪个意味着什么.但是,Ruby中有关于这些是如何不同的约定.通常情况下,==是不是严格===- a === b将几乎如果总是真的a == b是.阅读此内容的最佳地点是http://ruby-doc.org/core/classes/Object.html.向下滚动到关于==和的不同部分===.以下是我所知道的一些惯例:
==当应用于plain Objects时,只有当它们与另一个完全相同时才会成立 - 如果它们存储在相同的内存位置(这就是Ruby在内部工作的方式).但是,如果参数的类型不是Object,则通常会覆盖此方法.equal?就像==普通Object的一样,但永远不会被子类覆盖.=== 是用来:
is_a?另一种选择,倒退.String === 'str'是真的./s[at]r*/ === 'str'是真的.您可以===在这些类的文档中找到各种类的具体含义,例如,Range版本在这里(同义词include?):http://ruby-doc.org/core/classes/Range.html#M000691
mip*_*adi -5
==用于判断语句中的相等性if,如unless、 等。===用于确定case语句中的相等性。
| 归档时间: |
|
| 查看次数: |
22032 次 |
| 最近记录: |