Remove と Delete と Destroy の違い
削除系の単語として Remove, Delete, Destroy の 3 つがありますが、細かい使い分けやニュアンスがよくわからなかったので調べてみました。
人の扱いでたとえると
過激なたとえですが、人の扱いでたとえます。
- Remove は 隔離。刑務所や隔離病棟に収監するようなイメージ。
- Delete は 殺害。毒殺、刺殺など必要最小限に命を消すイメージ。
- Destroy は 念を入れた殺害。命を消すのはもちろん、死体を潰したり刻んだりして物理的にも残さないイメージ。
ちゃんとした説明で
もう少し一般的な説明でまとめます。
- Remove はごみ箱に入れるなど 用済みの領域に移す イメージ。 元に戻せる。
- Delete は対象を 必要最小限に消す イメージ。元に戻せない。
- Destroy は壊す、潰す、粉砕するなど 容赦無く滅する イメージ。元に戻せない。
英語辞典を見てみると
英辞郎 on the WEB から抜粋します。
- Remove は『移転、除去、排除、解除』
- Delete は『削除、抹消、消去』
- Destroy は 『破壊、粉砕、荒廃、廃止』
参考:
プログラミング言語では
プログラミングの話題なので、知らない方はスルーしてください。
Ruby on Rails には destroy() と delete() なる API があるらしいですが、これの違いは
- delete() は対象のみを消す
- destroy() は関連付けも含めて消す
となっており、Destroy の方が念を入れているニュアンスがあります。
参考: ruby on rails - Difference between Destroy and Delete - Stack Overflow
改めて振り返る
※ここもプログラミングの話題なので、知らない方はスルーしてください。
僕は特に意識せず、なんとなくで Remove, Delete, Destroy を使っていました。特にテキトーなのが Remove と Delete で、手元のソースコードを grep してみると全く統一感がなくて笑いました。
今後はこの 3 つを意識して使い分けたいと思います。
おわりに
以上、Remove, Delete, Destroy の違いについてのまとめでした。