• Почему immutable это добро?

    diez_ua
    @diez_ua
    GlobalLogic, Kyiv, Ukraine
    Касаемо immutable массивов – в Scala их нет.

    Есть immutable List. Этот List заточен на добавление и удаление элементов в начале списка – head. И если вы делаете map или filter списка – новый список формируется в том же "оптимальном" порядке.

    В таком случае никакого перерасхода памяти и нагрузки на GC по сравнению с Java LinkedList нет: при добавлении элемента создается НОВЫЙ объект List со ссылкой на новый элемент (head) и ссылкой на прежний список (tail). Старые листы в деле. Каждый новый лист – объект из всего двух референсов.
    Ответ написан
    Комментировать