0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Ruby]使えるようにしておくと便利な記法

Last updated at Posted at 2020-03-10

はじめに

ずっと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]

ブロック関係など、他にも色々あるので、後々追記していくかもしれません。
もっとこういうのも覚えておくと良いというものがあればお願いします!

0
2
2

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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?