Почему TreeSet scala возвращает SortedSet

Есть ли причина что объект TreeSet.apply возвраты метода SortedSet и нет TreeSet?

Следующий код не скомпилирует в scala 2.7

val t:TreeSet[Int] = TreeSet(1,2,3)
7
задан Elazar Leibovich 25 March 2010 в 05:01
поделиться

2 ответа

Буквальный ответ заключается в том, что apply () реализован в терминах ++ , который определен в SortedSet , и, следовательно, возвращает a SortedSet . ++ затем переходит к использованию + , который равен определен в TreeSet , поэтому вы можете вернуть его в TreeSet , если это критично (хотя я бы не рекомендовал это, поскольку это зависит от реализации и со временем может измениться!).

Что вам нужно от TreeSet, чего нельзя получить от SortedSet?

Я не уверен, в чем причина такого дизайнерского решения, хотя похоже, что оно изменилось в версии 2.8.

5
ответ дан 7 December 2019 в 01:19
поделиться

Это было определено как недостаток текущей библиотеки коллекций scala и устранено в обновленной библиотеке коллекций, которая является частью scala 2.8. См. http://www.scala-lang.org/sid/3# для получения более подробной информации.

5
ответ дан 7 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: