質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

3回答

128閲覧

rubyの破壊的メソッドについて

s-a0202

総合スコア23

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

1グッド

1クリップ

投稿2019/05/30 14:13

rubyの破壊的メソッドはどのような場面でつかえるのでしょうか?
簡単な例があるとありがたいです。

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

参考情報

  • rubyの破壊的メソッドと非破壊的メソッドのパフォーマンス比較

https://blog.toshimaru.net/destructive-method-performance/

投稿2019/05/30 21:39

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

例えば、ファイルから読み込んだ行lineに対して、line = line.chompと書くのであれば、line.chomp!のほうが効率が良いです。

あとは、こういうコードはよく書きます。

Ruby

1data = [] 2ARGF.each do |line| 3 if /~~~/ =~ line 4 data << $1 5 end 6end

投稿2019/05/30 14:29

編集2019/05/31 01:35
otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s-a0202

2019/05/31 12:16

ありがとうございます! 初心者なので、 data = [] ARGF.each do |line| if /~~~/ =~ line data << $1 end end の意味を知りたいです。よろしくおねがいいたします。
otn

2019/05/31 15:34 編集

見て分からない人に説明は難しいです。 分からなければ、分かるまで放っておいて良いのではないでしょうか。 勉強を進めれば分かるようになります。
guest

0

2 つの変数の値をスワップする | まくまくRubyノート
https://maku77.github.io/ruby/swap-values.html

class Array def swap!(a, b) self[a], self[b] = self[b], self[a] end end

こういう風に配列の中身を入れ替えたいときに使います。

Rubyの配列でswap(入れ替え)メソッド - Qiita
https://qiita.com/falcon8823/items/23f0252582d0bc7c3a5c

irb(main):014:0> a = [1, 2, 3, 4, 5] => [1, 2, 3, 4, 5] irb(main):015:0> a.swap(0, 3) => [4, 2, 3, 1, 5] irb(main):016:0> a => [1, 2, 3, 4, 5] irb(main):017:0> a.swap!(1, 4) => [1, 5, 3, 4, 2] irb(main):018:0> a => [1, 5, 3, 4, 2]

非破壊メソッドだと中身が入れ替わりません。

投稿2019/06/07 09:45

DrqYuto

総合スコア432

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問