タグ

caseに関するtatsu_toraのブックマーク (2)

  • なぜRubyのcase/whenはインデントしないのかを考えてみた - give IT a try

    はじめに 昨日はソニックガーデンにしては珍しく、ちょっとしたコーディングスタイル論争(?)が発生しました。 議論のネタになったのはRubyのcase文のインデントについてです。 when節はインデントすべきか、それともcaseキーワードと揃えるべきかの議論になりました。 x = 1 # インデントする場合 case x when 1 puts "x is 1" when 2 puts "x is 2" else puts "x is other" end # インデントしない場合 case x when 1 puts "x is 1" when 2 puts "x is 2" else puts "x is other" end Rubyのコーディング規約をいくつか見てみると、後者のインデントしないスタイルの方が多数派だったので、「インデントなしでいいじゃん」で結論付ければいいだけかもしれ

  • Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい

    Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def

  • 1