Ответ 1
Нет, нет способа сделать это. Объявление нескольких свойств в одной строке недооценивается многими руководствами стиля Java, поэтому мы не реализовали поддержку этого в Kotlin.
Я разрабатываю класс с несколькими свойствами lateinit
одного типа. Я думаю, что слишком много слов, чтобы объявить каждую из них в отдельной строке следующим образом:
lateinit var a: String
lateinit var b: String
поэтому я хотел бы объявить их в одной строке следующим образом:
lateinit var b, c: String // error: Property getter or setter expected
Но я получаю сообщение об ошибке Property getter or setter expected
. Есть ли способ объявить несколько свойств в одной строке в Kotlin?
Нет, нет способа сделать это. Объявление нескольких свойств в одной строке недооценивается многими руководствами стиля Java, поэтому мы не реализовали поддержку этого в Kotlin.
Глядя на грамматику, это невозможно:
property (used by memberDeclaration, declaration, toplevelObject)
: modifiers ("val" | "var")
typeParameters? (type "." | annotations)?
(multipleVariableDeclarations | variableDeclarationEntry)
typeConstraints
("by" | "=" expression SEMI?)?
(getter? setter? | setter? getter?) SEMI?
;
Вы можете уничтожать объявления только с помощью
val (name, age) = person
Как сказал EarlOfEgo, в Kotlin есть хитрость, но не для lateinic
префикса.
var (a,b,c,d) = listOf("fly",23,"slow",28)
println("$a $b $c $d")