Hatena::Grouperlang

檜山正幸のErlang未確認情報 RSSフィード

 | 

2008-12-12 (金)

delete, remove, erase

| 14:58

http://erlang.g.hatena.ne.jp/m-hiyama/20081209/1228805002 を見ると、deleteとeraseがたいした原則もなく(と思える)使われている。歴史的経緯があって、たいていはしょうがないことなのだけど、気になるなー。

以前、Javaのプロジェクトでは、eraseは使わなかったが、removeとdeleteの使い方を区別していた(僕が口うるさく言っていた)。

  • なんらかの複合構造からオブジェクトを取り外すときは remove。オブジェクト自体は消滅しない。
  • 消したオブジェクトやデータがほんとに消滅してしまい、もはやアクセスできなくなるときは delete。
  • register, setと対になるときに removeやdeleteを使わない。unregister, unsetを使う。
  • kill, dropは使わない。destroyは後始末で完全破棄するときだけ。

と、そう決めた所で所詮はローカル・ルールだけど、チーム内での混乱を防ぐには多少の効果がある。Erlang/OTPでは、ネーミングを口うるさく言う人はいなかったんだろう。

 |