0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】ボッチ演算子ってなんだよ

Posted at

はじめに

ボッチ演算子って名前がおもしろいし好きなので書きます。

ボッチ演算子とは

オブジェクトがnilの場合でもエラーを発生させずに処理を続行させることができるもの。

(あんまり参考にならないがRubyリファレンス)

ボッチ演算子の挙動

例えば、upcaseというメソッドを使用すると下のような挙動になる。

irb(main):006> gorira = "hage"
=> "hage"
irb(main):007> gorira.upcase
=> "HAGE"

じゃあ、このgoriraというオブジェクトの中身が空(Rubyの場合、nil)の場合はどうだろうか。

irb(main):014> gorira = nil
=> nil
irb(main):015> gorira.upcase
Traceback (most recent call last):
	3: from /Users/masahito/.rbenv/versions/2.7.2/bin/irb:23:in `<main>'
	2: from /Users/masahito/.rbenv/versions/2.7.2/bin/irb:23:in `load'
	1: from /Users/masahito/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/irb-1.14.1/exe/irb:9:in `<top (required)>'
(irb):15:in `<main>': undefined method `upcase' for nil:NilClass (NoMethodError)
Did you mean?  case

NoMethodErrorとなり処理が終わる。

じゃあこれらの挙動をボッチ演算子にして確認してみる。

irb(main):017> gorira = "hage"
=> "hage"
irb(main):018> gorira&.upcase
=> "HAGE"

まぁ、これはふつうにボッチ演算子を使用していないときと挙動は変わらない。

じゃあ中身が空の場合。

irb(main):019> gorira = nil
=> nil
irb(main):020> gorira&.upcase
=> nil

今度はエラーとならずにnilを返してくれた。

最後に

nilを許容しているカラムに対する処理などを書く時に使える。

がんばろう。

0
0
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?