Scala -lang ссылка 5.5.1 и 6.6.1 дала мне впечатление, что параметр по умолчанию может ссылаться на ранее оцененный:
class Test(val first: String, val second: String = first)
но, экспериментируя, кажется, единственный способ сделать это - использовать форму:
class Test(val first: String)(val second: String = first)
а затем определите вспомогательный конструктор или класс сопутствующих сокетов, чтобы избежать указания второго набора скобок при создании. Я действительно не понимаю, как работает этот второй конструктор, он выглядит как карри-функция, поэтому я могу предположить, что нужно оценивать first
независимо от second
, это правильно? Является ли эта форма необходимой или есть какой-то синтаксический сахар, который я могу использовать, чтобы настроить первый конструктор на то, что я хочу?