- Rubyのブロック : (2005/09/21)
-
if〜endが嫌いな場合は、Ifをメソッドにしてしまってブロック渡し
#ブロック渡し
If(true){
puts "OK"
}
さらに、Elsif,Elseもメソッド定義して、以下のようにする
class True
def Elsif(f) return True.new() end
def Else() return True.new() end
end
class False
def Elsif(f)
if(f)
yield
return True.new()
else
return False.new()
end
end
def Else()
yield
return True.new()
end
end
def If(f)
if(f)
yield
return True.new()
else
return False.new()
end
end
これで、以下のように書ける
n = 6
If(n > 10){
puts "Large"
}.Elsif(n > 5){
puts "Middle"
}.Elsif(n > 0){
puts "Small"
}.Else{
puts "<= Zero?"
}
結果は「Middle」