shallow copy? deep copy?
同じクラスのインスタンスがたくさん入った配列が欲しかった。でも同じインスタンスへの参照が詰まっているのではだめ。全部違うもの。内容は同じなのがいい。
という処理がいくつか必要になって、ループでまわすのが嫌だったから API を調べてみた。ちなみに言語は C# .NET 。
そうしたら ArrayList.Repeat(object, int) が見つかった。 static なメソッドで、同じインスタンスを繰り返してくれるらしい。
でも使用前には一抹の不安が残った。どこにも shallow copy なのか deep copy なのか書いていない。このメソッドだけじゃなくて API ドキュメント全体にいえること。
怖いながらも使ってみた。とおりゃんせ。
見事に失敗。実装は shallow copy だった。
shallow か deep かはけっこう気になるから書いて欲しかったな。残念。