ホスト やまこー

記録係 いわき

nillガード

変数にnillが入っているかもしれない状況で、nillの代わりに何らかのデフォルト値を入れておきたい時に便利である。

number ||= 10
number || (number = 10)

訳 「もしnumberがあれば(numberが真である)number、なければ(nullかfalseである。)numberに10を代入した上でのnumber」

以下はよくある利用方法

def children
  @children ||=[]
end

ぼっち演算子

&.(正式名称はsafe navigation operator)

object = nil
object&.name
=> nil

ぼっち演算子を利用すると、次のようにifや、単純な分岐を短く書くことができる三項演算子を使って書くより簡潔に書くことができます。

# if文の例
name = if object
  object.name
else
  nil
end

# 三項演算子を使った記述例
name = object ? object.name : nill

# ぼっち演算子を使った記述例
name = object&.name

%記法

%w(全ての要素が文字列の場合に使用)

ary1 = ['udon','lamen','soba']
puts ary1
["udon","lamen","soba"]

ary2 = %w(udon lamen soba)
p ary2
["udon","lamen","soba"]