はじめに
ずっとC言語使ってきたせいか、書き方もついついC言語で出来る書き方に寄ってきてしまう。
さすがに慣れてはきたものの、たまに忘れてしまうため備忘録として残しておく。
Rubyをちょっと勉強していれば知っていて当たり前のものではあるが。。。
||=
一般的にはnilガード
と呼ばれているもの。
nilガードの例
def users
@users ||= []
end
nilガードを使わなかった場合
def users
@users || (@users = [])
end
※上記のようなゲッターメソッドの書き方は良く使われるらしい。
&.
正式名称はSafe navigation operator
、通称ぼっち演算子
とのこと。
レシーバの後に付けることで、レシーバがnilの場合でもエラーを吐かずにnilを返す。
RailsではActiveSupportにtry!
という似たメソッドがあるため、あまり使われないかも。
ただし、速度的にはこちらの方が有利
&.の例
# objectがnilの場合:nilを返す
# objectがnilでない場合:emailメソッドの結果を返す
object&.email
※emailが実装されていない場合、エラーを吐く。
%記法
代表的なものとして、%w
と%i
について記載する
%w:文字列配列
# %wを使う場合
%w(tokyo kanagawa saitama)
# %wを使わない場合
["tokyo", "kanagawa", "saitama"]
%i:シンボルの配列
# %iを使う場合
%i(tokyo kanagawa saitama)
# %wを使わない場合
[:tokyo, :kanagawa, :saitama]
ブロック関係など、他にも色々あるので、後々追記していくかもしれません。
もっとこういうのも覚えておくと良いというものがあればお願いします!