Это имя / идентификатор экземпляра, который печатает scala REPL? - PullRequest
2 голосов
/ 13 апреля 2020

В учебном пособии упоминается об изменяемых наборах в исходном тексте, но почему REPL изменит имя экземпляра с res4 на res5 при добавлении нового элемента? Разве «res» не является именем экземпляра, который печатает REPL? Ниже приведен код в контексте. Новичок в scala. Пожалуйста, имейте, если вопрос тривиален.

scala> val set = scala.collection.mutable.Set[Int]()
val set: scala.collection.mutable.Set[Int] = Set()

scala> set += 1
val res0: scala.collection.mutable.Set[Int] = Set(1)

scala> set += 2 += 3
val res1: scala.collection.mutable.Set[Int] = Set(1, 2, 3)

1 Ответ

4 голосов
/ 13 апреля 2020

Хотя ссылка не изменилась, это означает res0 == res1. Scala repl сгенерирует имена для выражений, которым не присвоено ни одно имя, независимо от того, является ли оно изменяемым или нет.

Дополнительно взгляните на документы . Для mutable.Set метод += приводит к Set.this.type. Поскольку возвращается значение, ему должно быть присвоено некоторое имя.

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