LoginSignup
0
0

More than 1 year has passed since last update.

Rubyの安全参照演算子や範囲演算子についてまとめた

Last updated at Posted at 2021-05-04

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

0
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0