teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

内容の改善

2018/09/18 10:20

投稿

jnchito
jnchito

スコア357

answer CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  そして、StringクラスとArrayクラスは互いに無関係なクラスなので、たまたま`delete`という同じ名前のメソッドが定義されているだけです。
20
20
 
21
- 上記の議論を総合すると、「何故delete!としていないのに定数の中身を破壊的に変更できるのでしょうか?」という問いに対しては、次のような回答が導出されます。
21
+ 上記の議論を総合すると、「(Arrayクラスでは)何故delete!としていないのに定数の中身を破壊的に変更できるのでしょうか?」という問いに対しては、次のような回答が導出されます。
22
22
 
23
23
  - !が付いているからといって破壊的メソッドとは限らない
24
24
  - !が付いていないからといって非破壊的メソッドとは限らない
@@ -27,6 +27,6 @@
27
27
  - 結果として、Arrayクラスには「破壊的な`delete`メソッド(!なしの破壊的メソッド)」のみが定義された
28
28
 
29
29
  とはいえ、このあたりの議論は、クラスライブラリの**設計**の話になります。
30
- 自らの経験に基づいて上のような説明をしましたが、実際のところ(本当のいきさつ)はまつもとさん(Matz)や、コミッタのみなさんしかわからないと思います。
30
+ 自らの経験に基づいて上のような説明をしましたが、実際のところ(本当のいきさつ)はまつもとさん(Matz)や、コミッタのみなさんしかわからないと思います。
31
31
 
32
32
  本当の真相を知りたい場合は、まつもとさんに「ねえ、どうして!?」と突撃インタビューするのが一番確実だと思います(笑)。

2

説明の修正

2018/09/18 10:19

投稿

jnchito
jnchito

スコア357

answer CHANGED
@@ -20,8 +20,8 @@
20
20
 
21
21
  上記の議論を総合すると、「何故delete!としていないのに定数の中身を破壊的に変更できるのでしょうか?」という問いに対しては、次のような回答が導出されます。
22
22
 
23
- - 破壊的メソッドは必ずしも!を付けなくてよい
24
- - !が付かい破壊的メソッドがあってもよ
23
+ - !が付いているらとって破壊的メソッドとは限らな
24
+ - !が付いていないからといって非破壊的メソッドとは限らない
25
25
  - !ありのメソッドが定義されている場合は、!なしの同名メソッドも定義した方がよい
26
26
  - Arrayクラスには(Stringクラスと異なり)delete系のメソッドが1種類しか定義されていない
27
27
  - 結果として、Arrayクラスには「破壊的な`delete`メソッド(!なしの破壊的メソッド)」のみが定義された

1

URLにリンクを追加

2018/09/18 08:46

投稿

jnchito
jnchito

スコア357

answer CHANGED
@@ -13,8 +13,8 @@
13
13
 
14
14
  APIドキュメントを見てもらえればわかると思いますが、Stringクラスには`delete`と`delete!`の2種類がありますが、Arrayクラスには`delete`メソッドしかありません。
15
15
 
16
- https://docs.ruby-lang.org/ja/latest/class/String.html
16
+ [https://docs.ruby-lang.org/ja/latest/class/String.html](https://docs.ruby-lang.org/ja/latest/class/String.html)
17
- https://docs.ruby-lang.org/ja/latest/class/Array.html
17
+ [https://docs.ruby-lang.org/ja/latest/class/Array.html](https://docs.ruby-lang.org/ja/latest/class/Array.html)
18
18
 
19
19
  そして、StringクラスとArrayクラスは互いに無関係なクラスなので、たまたま`delete`という同じ名前のメソッドが定義されているだけです。
20
20