1
1

More than 3 years have passed since last update.

コンテナとコレクション

Posted at

これは何?

C++ の vector とかは「コンテナ」。
Java の List とかは「コレクション」。

こういう言葉遣いって他はどうなってるのかなと思って、軽く調べて列挙してみた。

コンテナ

  • C++ の STL コンテナ
  • go の heap, list, ring のパッケージ名が container

こうしてみると、コンテナは少数派っぽい。

コレクション

  • Java のコレクションクラス
  • .NET Framework のコレクションクラス
  • Rust の std::collections
  • go の sort の説明が「Package sort provides primitives for sorting slices and user-defined collections.」となっている。
  • Swift Standard Library を見ると、配列や辞書のことを collection と呼んでいる。
  • Dart の Deque とか List は collection ライブラリに入っている。

だいたいみんなこっちなんだなと思った。

コレクションとコンテナ

この例を見ると、英語ネイティブの方々はわりとどうでもいいと思っているのかな、と思うけどどうなんだろ。

アグリゲート

  • C/C++ で、配列・構造体・共用体 の総称。日本語だと「集成体」。

まとめ

コンテナは少数派、だいたいみんなコレクションっぽい。

新しくそういう構造を作る場合、その言語などの文化圏にあった名前を使うのが良いと思う。

そういう意味で、C言語は困る。C言語で(事実上)標準となっているそういうものはたぶんないので、良さげな名前を勝手に決める必要がある。

1
1
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
1
1