- IT Tips
- Ruby / Rails以外の開発一般
READ MORE
こんにちは、hachi8833です。
前回の週刊Railsウォッチのrescue
の項で扱った、Rubyの===
演算子の動作を以下にまとめてみました。
===
演算子について==
と同じ動作前回と同じ記事「Rescue’s Elegant Trick for Knowing Which Exceptions to Catch」のコードがわかりやすいので、再度引用します。
(1..10) === 5 # true
('a'..'f') === "z" # false
String === "hello" # true
String === 1 # false
/[0-9]{3}/ === "hello123" # true
/[0-9]{3}/ === "hello" # false
公式ドキュメントには以下の記述があります。
特殊な等号演算子。Object#===での説明:「このメソッドは case 文での比較に用いられます。 デフォルトはObject#==と同じ働きをしますが、 この挙動はサブクラスで所属性のチェックを実現するため 適宜再定義されます」。たとえば、Range#===はotherが範囲内に含まれている時に真を返します。
Rubyで使われる記号の意味: ===より
===
との違いRubyのトリプルイコール演算子===
は、Rubyの通常の==
演算子よりフレキシブルな、見方を変えればゆるい演算子です。
一方、以下のようにJavaScriptの厳密等価演算子である===
は、等価演算子==
より厳密な比較(型を変換しない比較)を行います。
===
と!==
)==
と!=
)