2011年10月25日火曜日

破壊的メソッドと非破壊的メソッド

Rubyの破壊的メソッドと非破壊的メソッドの違いがイマイチ把握できなくてあうあう言ってた時に素晴らしくわかりやすい説明が載ってるサイトがあって感動。

以下引用。

・非破壊的メソッド
・オブジェクト および レシーバの内容に一切影響を与えないメソッド
・upcase(大文字にする)
・downcase(小文字にする)
・capitalize(先頭の1文字を大文字に残りを小文字にする)
※これらは、非破壊的メソッド
例えば
str = "olympic"
p str.upcase #=> "OLYMPIC"
p str #=> "olympic" 変わっていない
p str.downcase #=> "olympic"
p str #=> "olympic" 変わっていない
p str.capitalize #=> "Olympic"
p str #=> "olympic" 変わっていない
> 確認した

・破壊的メソッド
・オブジェクトの中身を直接置き換えてしまう
・非破壊的メソッドと一緒に用意されている破壊的メソッドは、
「非破壊的メソッドの末尾に !」がついた形式となっている
・upcase!(大文字にする)
・downcase!(小文字にする)
・capitalize!(先頭の1文字を大文字に残りを小文字にする)
※これらは、破壊的メソッド として用意されている
str = "olympic"
p str.upcase! #=> "OLYMPIC"
p str #=> "OLYMPIC" 変わった
str = "olympic"
p str #=> "olympic" 初期化
p str.downcase! #=> nil が返る
str = "olympic"
p str #=> "olympic" 初期化
p str.capitalize! #=> "Olympic"
p str #=> "Olympic" 変わった
> 確認した

0 件のコメント:

コメントを投稿