Scala scala.util.Sorting.quickSort меняет значение массива? - PullRequest
0 голосов
/ 01 сентября 2018

я читал по книге "Скала для нетерпеливых"

В главе 3 встречается этот код

val a = Array(1, 7, 2, 9) 
scala.util.Sorting.quickSort(a) 
// a is now Array(1, 2, 7, 9)

Я думал val a должно быть неизменным в скале? Что здесь происходит?

1 Ответ

0 голосов
/ 01 сентября 2018

Код не меняет привязку a. Он мутирует объект, на который ссылается a. a по-прежнему указывает на тот же объект, что и раньше, изменилось только внутреннее состояние этого объекта.

В документации говорится, что массив отсортирован по месту ( полужирный выделение):

def quickSort[K](a: Array[K])(implicit arg0: math.Ordering[K]): Unit

Сортировать массив a с быстрой сортировкой, используя упорядочение по его элементам. Этот алгоритм сортирует вместо , поэтому дополнительная память не используется, кроме того, что может потребоваться для упаковки отдельных элементов во время сравнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...