見出し画像

#27 Rubyアウトプット

みなさんこんばんは!hiroです😃
本日も学習した内容をアウトプットします。

参考文献
伊藤 淳一氏
プロを目指す人のためのRuby入門
言語仕様からテスト駆動開発・デバッグ技法まで


メソッド定義について

■デフォルト値付きの引数
・引数の過不足があるとエラーが発生する

▼引数0の場合のエラー

ArgumentError:wrongnumberofarguments(given0,expected1)

▼引数が実数よりも多い場合のエラー

ArgumentError:wrongnumberofarguments(given2,expected1)

▼引数にデフォルト値を設定する事で、引数が0の場合、デフォルト値が実行結果として出力される

def greeting(country='japan')
  if country == 'japan'
    'こんにちは'
  else
    'hello'
  end
end

greeting #=> "こんにちは"
greeting('us') #=> "hello"


■?で終わるメソッド
・?で終わるメソッドは慣習として真偽値を返すメソッド
・真偽値を返す目的のメソッドであれば、?で終わらせるようにしたほうが良い

#3の倍数ならtrue、それ以外はfalseを返す
def multiple_of_three?(n)
  n%3==0
end

multiple_of_three?(4) #=> false
multiple_of_three?(5) #=> false
multiple_of_three?(6) #=> true

■!で終わるメソッド
・!で終わるメソッドは慣習として「使用する際は注意が必要」という意味を持つ
・破壊的メソッドとは、呼び出したオブジェクトの状態を変更してしまうメソッドの事

■stringクラスのupcaseメソッドの例

a='ruby'

#upcaseだと変数aの値は変化しない
a.upcase #=>" RUBY"
a #=> 'ruby'

#upcase!だと変数aの値も大文字に変わる
a.upcase! #=> "RUBY"
a #=> "RUBY"

・!で終わるメソッドを見かけたらどんな注意事項があるか、APIドキュメントを読んで確認する
・?で終わるメソッドと同様、!で終わるメソッドも自分で定義することができる


最後まで読んで頂き、ありがとうございました🙇‍♂️

この記事が気に入ったらサポートをしてみませんか?