オブジェクトの複製を作りたい場合、基本的には clone
を使います。
dup
は少し弱い複製で 凍結状態、特異メソッドはコピーされません。
オブジェクトは一度凍結(freeze
)するともう変更することはできません。
それを変更して使いたいという場合に dup で複製してから使います。
`
foo = "Foo"
foo.freeze
foo.chop! # NG 凍結したものは変更できない
bar = foo.clone
bar.chop! # NG 凍結状態もコピー
baz = foo.dup
baz.chop! # OK "Fo"
`
特異メソッドはオブジェクトに固有のメソッドで、 GUI のボタンで個別にコールバックを設定したりすることなどのために用意されているそうです。
`
ok_btn = "OK"
def ok_btn.clicked_cb
end
ok_btn.clicked_cb # OK
cancel_btn = ok_btn.dup
cancel_btn.clicked_cb # NG
`
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/08/12 02:30