Ruby

Rubyでの参照渡し

Rubyで参照渡しを使うにはどうするのかというのが気になり、色々と調べてみました。結論として、参照渡しを使うケースは主にひとつ以上の値をメソッドから取り出したいケースで、Rubyの場合は配列で戻り値を返そうよっということみたいです。 引用元: http:…

ブロックの作り方 (もう少し)

もう少しブロックについて、メソッドにブロックを渡されなかったらどうなるかというメモを。 上のtwo_times_to_max()にブロックを渡さなかった場合は、例外が発生します。 ブロックを渡された場合と渡されなかった場合で、処理を分ける場合はblock_given?を…

ブロックの作り方(再)

ブロックは、イテレータを実装するためによく使われています。 たとえば、Arrayクラスのeachメソッドでは、 list = ["hoge", "fuga", "piyo"] list.each{ |element| puts element} といった具合にブロックを使って繰り返し処理を行えます。このようなブロッ…

ブロックの作り方

Rubyでは、メソッドにブロックを関連付けて、色々と便利なことができるようです。 ちょっと、この辺りがまだモヤモヤしているのでまとめときます。 って思ったけど、また明日にでも。

可変長の引数

メモです。可変長の引数にする場合には、 def my_method(arg1, *arg2) のように、引数の前に*をつけます。 これによって、 my_method("hoge", "piyo", "fuga") のような呼び出しで、arg1には"hoge"が、arg2には残りの引数が配列で格納されます。

ファイル読み込みのTip

ファイル読み込みで、とある文字列からとある文字列までの内容を処理したい場合があります。こんなときは、以下のように範囲を条件式として利用すると便利です。 while line = gets puts line if line =~ /hoge/ .. line =~ /fuga/ end 上のソースでは、標準…

ActiveSupportってめちゃ便利

ActiveSupportは、Railsのフレームワークのひとつですが、普通のRubyプログラムでも使うことができます。 Railsをインストールしている場合は、 require 'active_support' で、ActiveSupportのクラスやメソッドを使うことができます。 便利な機能としては、 …