2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Ruby]自作で破壊的メソッドを作ってみた

Posted at

はじめに

自作で破壊的メソッドを作ってみたので備忘録として残しておきます。

破壊的メソッドとは

結論から言うと、インスタンス自身の内容を変えてしまうものを破壊的メソッドと呼びます。

非破壊的メソッド「reject」
array = [1,2,3]
p array.reject {|item| item == 2} #=> [1, 3]
p array #=> [1, 2, 3]

破壊的メソッド「delete」
array = [1,2,3]
p array.delete(2) #=> [1, 3]
p array #=> [1, 3]

上記の例では「非破壊的メソッド」であるArrary#rejectを用いた場合にはarrayそのものの値は変更していないが、「破壊的メソッド」であるArray#deleteを用いた場合にはarrayそのものの値が変更されている事がわかるとおもいます。

##作ってみる
たとえば文字列の先頭に「foo」を付け足す破壊的メソッド「foo!」を定義する場合以下のようになります。

class String
 def foo!
   self.replace("foo" + self)
 end
end

たったこれだけですが、以上を参考にいろいろな破壊的メソッドを作れそうです。

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?