memo

ちょっとしたメモ書き(個別表示)

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」

: back