メモ(Ruby III)
メソッド基本
def introduce puts "こんにちは" puts "私はにんじゃわんこです" puts "14歳です" end puts introduce
引数の基本
def introduce(name) puts "こんにちは" puts "私は#{name}です" end introduce("ハンムラビ王")
引数のスコープ
メソッドの中だけ。すなわち、下記の例だとputs itemの部分でエラーになる。
def print_info(item) puts "わんこでんきへようこそ!" puts "今日は#{item}がセール中です!" end print_info("ヘッドホン") puts item
第1引数、第2引数
def print_info(item,price) puts "わんこでんきへようこそ!" puts "今日は#{item}がセール中で#{price}円です!" end print_info("SDカード",1200)
戻り値
def discount(price) return price/2 end puts "テレビがセール中です!" half_price=discount(15000) puts "特別価格で#{half_price}円です"
真偽値を返すメソッド
if文で使うような条件式をreturnすると、その条件式の結果として得られる真偽値(trueまたはfalse)を返すことができる。真偽値を返すメソッドは、メソッド名の末尾に「?」をつける慣習がある。
def shipping_free?(price) return price >= 5000 end if shipping_free?(3000) puts "5000円以上のお買い上げなので送料はいただきません" else puts "追加で送料をいただきます" end
複数の戻り値
def price_with_shipping(price) # priceが5000以上のとき、戻り値としてpriceを返すif文を作成してください if price >= 5000 return price end # priceに500を加えた値を戻り値として返してください return price+500 end puts "商品の合計金額は3000円です" puts "お支払い金額は、送料込みで#{price_with_shipping(3000)}円です" puts "-----------" puts "商品の合計金額は10000円です" puts "お支払い金額は、送料込みで#{price_with_shipping(10000)}円です"
キーワード引数
def buy(item:, price:, count:) puts "#{item}を#{count}台のお買い上げです" puts "合計金額は#{price * count}円です" end buy(item:"テレビ", price:15000, count:2)