#list #scala
#Список #scala
Вопрос:
Учитывая два класса A() и B (a: A), я хочу использовать их для построения списка, подобного этому:
List(val a = A(), B(a))
Как этого добиться?
Ответ №1:
Вы не можете объявить значение при вызове конструктора списка таким образом. Предполагая, что A и B являются классами case, разделите ваш пример на две строки следующим образом:
val a = A()
List(a, B(a))
должно иметь желаемый эффект.
Если цель состоит в том, чтобы уменьшить область действия a
, вы можете сделать что-то вроде этого:
val l = {
val a = A()
List(a, B(a))
}
и a
не будет отображаться за пределами определения l
.
Комментарии:
1. Да, я это знаю. Я просто подумал, что есть выход. Спасибо.
2. Чего вы пытаетесь достичь? Я отредактировал, чтобы включить предложение, если вы пытаетесь свести область видимости a к минимуму.
3. Это именно то, что мне было нужно, чтобы ограничить область действия. Я забыл об этом синтаксисе 🙂 Не так коротко, как я хотел. Большое спасибо!