Как объявить несколько свойств на одной строке

Я разрабатываю класс с несколькими свойствами 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?

Ответ 1

Нет, нет способа сделать это. Объявление нескольких свойств в одной строке недооценивается многими руководствами стиля Java, поэтому мы не реализовали поддержку этого в Kotlin.

Ответ 2

Глядя на грамматику, это невозможно:

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

Ответ 3

Как сказал EarlOfEgo, в Kotlin есть хитрость, но не для lateinic префикса.

var (a,b,c,d) = listOf("fly",23,"slow",28)
println("$a $b $c $d")