Scala CreatorのProgramming in Scalaの本を読んでいるので、Setの例を少し混乱させています。valとvarを使用する場合、scalaの可変で不変のセットが使用される
ここでは不変のセットです:
var jetSet = Set("Boeing", "Airbus")
jetSet += "Lear"
println(jetSet.contains("Cessna"))
これのポイントは何ですか?
このセットは変更できませんが、変数jetSetは変更可能です。 1)+ =でセットに追加するたびに、新しいセットが作成されますか?だから、変数は新しいセットをメモリにポイントしますか?
2)そうでなければなりません: val jetSet = set("cow","sheep","duck")
?なぜそれはvarでなければならないのですか?不変集合にvarを使用する理由はありますか?
APIに直接は含まれていませんが、パフォーマンスは* [ドキュメント化されています](http://www.scala-lang.org/docu/files/collections-api/collections.html)です。 – Debilski
ありがとうございます –
多くの操作は、O(log n)のように期待していますが、対数の基数が効果的にO(1)操作になるほど高いことが指摘されます。実際には、Scalaの不変のデータ構造に対する操作は、それらの変更可能ないとこに対する対応する操作の一定の要素の中にあります。 –