タグ

2015年12月24日のブックマーク (2件)

  • [Ruby] メソッドチェイン - あおたくノート

    前回の最後にちょっと触ったメソッドチェインの話をするよ。 もくじ メソッドチェインって?コンフィギュレーション可メソッドチェイン化tapでもっとかわいくつなげてみるあとがきメソッドチェインって?メソッドを連続的に呼び出すことをメソッドチェインっていうんだけど、実際のコードを見てもらったほうが分かりやすいよ。 文字列をアンダースコア区切りからキャメルケースに変換するような処理を例にとってみるよ。 string = "hello_world" words = string.split("_") words = words.map {|word| word.capitalize } string = words.join("") ちょっと冗長な書き方だけど、一行ずつにしたほうが分かりやすいからね。 "hello_word"という文字列を"_"で分割して配列wordsに格納するよArray#map

    [Ruby] メソッドチェイン - あおたくノート
  • TapがRubyの新たな制御構造の世界を開く

    Object#tapはそのブロックの評価結果を捨てるという風変わりなメソッドです。これは主としてメソッドチェーンにおける途中経過を覗き見るために使われます。 "charlie".upcase.tap{ |s| p s } # => "CHARLIE" .reverse.tap{ |s| p s } # => "EILRAHC" .gsub(/[aeiou]/i,'*') # => "**LR*HC" tapの副作用を使う もっとも、その評価結果を捨てるというユニークな特徴をうまく使えば、もっと面白いことができます。 例えば、ある変数の値を取得した上でその変数の値をリセットしたい場合を考えます。通常は次のように実装するのでしょう。