Я изучаю Scala из книги «Скала для нетерпимого». Один из разделов в книге иллюстрирует «свободно» стиль программирования с помощью следующего фрагмента кода:Scala «бегло» программирование стиля
object Title
class Document {
private var useNextArgAs: Any = null
def set(obj: Title.type): this.type = { useNextArgAs = obj; this }
def to(arg: String) = if (useNextArgAs == Title) title = arg; else ...
}
Затем автор делает метод следующий вызов:
book set Title to "Scala for the Impatient"
Некоторые вопросы здесь:
- Почему
useNextArgAs
типAny
? Единственным типом, который используется в примере дляuseNextArgAs
, являетсяTitle
. Можете ли вы показать пример использования для использованияAny
вместоTitle
? - Метод
set
возвращаетthis
, но тип возвратаthis.type
, а неDocument
? Разве это неthis
? - В способе
to
,title = arg
относится к несуществующим vartitle
? Откуда это?
Книга ориентирована на Scala и показывает такой пример с изменяемыми типами 'var' и' Any' без предупреждения? – cchantep
@cchantep "for the Impatient" - это ключ :) Из обзоров amazon 'Java-программист после прочтения этой книги будет писать пишу в стиле java программирования. Мы этого не хотим. Нам нужны разработчики, которые могут мыслить и программировать на scala way.' – harshtuna
Я не согласен с тем, кто написал этот отзыв. У меня 3 книги на Scala, «Scala for the Impatient», «Learning Scala» и «Programming in Scala» и IMHO, «Нетерпеливое ...» - лучшая из них. Он имеет необходимую глубину, но не дает вам спать. Возможно, рецензент не работал над упражнениями, и именно там они пропустили это. Упражнения так же важны, как и уроки, потому что каждый вопрос заставляет вас думать. Я вижу, что «путь scala» слишком сильно рекламируется слишком многими людьми без объяснения того, что для них значит, если вообще что-то. Отказ от ответственности: мне не заплатил автор. –