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?

More than 1 year has passed since last update.

[Ruby]関数を作成する上で心がけること

Last updated at Posted at 2022-11-07

ラベル付き引数

  • 引数名がはっきりしているので渡す内容がわかりやすい。
  • rubymineのIDEなどで自動保管してくれる
  • 渡し忘れの引数があればエラーが出る
  • デフォルト値も指定できるのでデフォルト値指定した分は省力できる
  • 引数の順番気にしなくていい
# 定義
def some_method(user: , require: false)
end

# 呼び出し型
some_method(
   user: current_user
)
some_method(
   user: current_user,
   require: true
)

普通の引数

  • rubymineのIDEなどで引数名は把握できる
  • 渡し忘れの引数があればエラーが出る
  • デフォルト値も指定できるのでデフォルト値指定した分は省力できる
  • 引数の順番を気にしなくてはいけないので数が多いと面倒
  • 1・2個の引数でメソッド名からもわかりやすければ楽
    • User.find(1) / User.find_by(id: 1) 左が楽
def some_method(user, require = false)
end

some_method(
  current_user,
  true
)

ハッシュの引数

  • 引数がわからない
  • 引数の増減で引数の定義を変更しなくてよい(唯一のメリット)
  • hash名が入るので打つべき文字数は増えがち
  • 何かしらの構造体やモデルのインスタンスを渡すならばそこに責務が発生するが、ただのハッシュだと中身は全く何がくるか、何が必要かわからない
def some_method(arg={})
   user = arg[:user]
   raise unless user
   require = arg[:require] || false
end

some_method({
  user: current_user,
  require: true
})
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?