Log.log(work)

いろんな作業メモ

レシーバー

レシーバーとはあるオブジェクトがあってこれをあるメソッドで処理しようとしたときの元になっている方をレシーバーと呼ぶ。

コード

foo = "foo"
foo.concat("bar") + "baz"
p foo

この場合

fooがレシーバー。

結果

foobarbaz
ってなりそうだけど、
foobarが正解。
+メソッドでは、変数foo("foobar")に"baz"を繋げた"foobarbaz"という新しい文字列オブジェクトを生成。

ここまでは良し。

ただし、この"foobarbaz"はレシーバ("foobar")を変更しない。そのため、pメソッドはfooに代入している"foobar"を標準出力に出力する。

なるほど。