独習Ruby 7 メソッドとクラス

独習Ruby

独習Ruby

練習問題1

def even? (a)
  if (a % 2) == 0
  	return true
  end
  false
end

p even?(1) #false
p even?(10) #true
p even?(0) #true

なんでeven?(0)の時はtrueを返すんだろう。


練習問題2

#encoding : utf-8

def greeting(word = "Hello.", name = "")
 puts word + name
end

p greeting() 
p greeting("Thanks")
p greeting("Thanks, ", "Taro")  

name の部分をデフォルト引数なしでやってたら、エラーが出たので、="" で定義?してみた。
Ruby チュートリアル (関数・メソッド) - あさあさの公開メモ

回答例

def greeting(g = "Hello", to = nil)
  unless to
   p "#{g}"
  else
   p "#{g}, #{to}"
  end
end 

条件分岐を使って to がないときとあるときで分けてるのか…。