Если я создаю Set
в Scala с помощью Set(1, 2, 3)
, я получаю immutable.Set
.
scala> val s = Set(1, 2, 3)
s: scala.collection.immutable.Set[Int] = Set(1, 2, 3)
Q1: Какой набор на самом деле? Это какой-то хэш-набор? Какова сложность поисковых запросов, например?
Q2: Где я могу прочитать этот метод создания набора? Я думал, что это был метод apply
, но в документах сказано: "Этот метод позволяет интерпретировать префиксы как предикаты. Он возвращает true, если этот набор содержит элемент elem."
Аналогично, если я создаю List
с помощью List(1, 2, 3)
, я получаю
scala> val l = List(1, 2, 3)
l: List[Int] = List(1, 2, 3)
scala> l.getClass
res13: java.lang.Class[_] = class scala.$colon$colon
Q3: Снова, что я получу? В этом случае я даже не могу сразу сказать, изменен ли он или нет, поскольку он даже не является частью пакета scala.collection
. Почему это происходит в пакете scala
?
Q4:. Где в API я могу прочитать об этом методе создания списка?