schwarzの雑記 このページをアンテナに追加 RSSフィード

06/03/06 (Mon)3月6日の雑記

[] 00:16 3月6日の雑記 - schwarzの雑記 を含むブックマーク

ちょっとネタ切れ感の漂う中、今日自分がためになったと思うテクニックをご紹介。

a = [0, 1, 2, 3, 4]
b = [5, 6, 7, 8, 9]
c = [10, 11, 12, 13, 14]

case rand(15)
when *a
  print "aにマッチ"
when *b
  print "bにマッチ"
when *c
  print "cにマッチ"
end

こうすると、たくさんの配列に対してcaseが使えます。

Glory浄化運動をやっていて、色々いじっているうちに見つけました。

(まあ、この例ならわざわざこんなことしなくてもいい訳ですが)


ちなみに * は、配列を展開してばらばらにするという働きがあります。

つまり上のスクリプトのcaseの部分は、

case rand(15)
when 0, 1, 2, 3, 4
  print "aにマッチ"
when 5, 6, 7, 8, 9
  print "bにマッチ"
when 10, 11, 12, 13, 14
  print "cにマッチ"
end

として解釈されるのです。


あまり使う機会はないかな。


[] 00:16 3月6日の雑記 - schwarzの雑記 を含むブックマーク

der Fall (ァル)
落下、場合、ケース
wenn (ェン)
~するときに、もし~ならば
wann (ァン)
いつ