Railsを勉強していて、JavaやPythonでは見かけない演算子に出会したため、
見かけないものにフォーカスしてRubyの演算子をまとめました。
論理演算子系
安全参照演算子(safe navigation operator)
item = a&.method
Ruby2.3.0から使用可能になった演算子です。
「ぼっち演算子」とも呼ばれます。他の言語では「Null条件演算子」と呼ばれているようです。
変数aがnilであるとき、a.methodを通常通り実行しようとするとnilなものを呼び出そうとしてエラーになります。
このエラーを避けるためにこの演算子を使います。
挙動としては、aがnilであればnilが返され、aがnilでなければa.methodが実行されその結果が返されます。
範囲演算子
(1..5).to_a #=> [1, 2, 3, 4, 5]
(1...5).to_a #=> [1, 2, 3, 4]
Rangeオブジェクトを省略する形で実装されているのが範囲演算子です。
Rangeオブジェクトでは、Range.new(1, 5)とインスタンスを生成する形で利用しなければなりませんが、範囲演算子では1..5で済みます。
「..」「...」の2種があり、前者は終点を含み、後者は終点を含みません。
また、abcなどの文字列でも、次の値を持つシリアルなものであれば範囲演算子を利用可能です。
以上、JavaやPythonでは見かけなかった演算子についてまとめました。
ググったところCやPerlなど様々な言語で実装されているようです。私がたまたま知らなかっただけでした・・・。
また何かあれば追記しようと思います。
参考
たのしいRuby第5版
https://www.sbcr.jp/product/4797386295/
現場で使えるRubyonRails5速習実践ガイド
https://book.mynavi.jp/ec/products/detail/id=93905
Wikipedia Null条件演算子
https://ja.wikipedia.org/wiki/Null%E6%9D%A1%E4%BB%B6%E6%BC%94%E7%AE%97%E5%AD%90