Kotlin Рекурсивная структура - PullRequest
0 голосов
/ 16 апреля 2020

Мне нужна следующая структура:

val menu = Information("0100", "About us", {
    Information("0101", "Welcome!"),
    Information("0102", "Our History"),
    Information("0103", "Our Values"),
    Information("0104", "Guest Services"),
    Information("0105", "Others", {
        Information("106", "Foo")
    }
}),

Прямо сейчас, у меня есть класс Информация как:

class Information(id: String,  name: String,  subCategories: Array<Information>?) {

}

Купить это не компилируется. Я хотел бы знать, какой будет правильный синтаксис для этого, или если бы кто-то мог предложить лучший подход для этого.

1 Ответ

1 голос
/ 16 апреля 2020

Вам нужно использовать правильный синтаксис для объявления массивов:

val menu = Information(
    "0100", "About us", arrayOf(
        Information("0101", "Welcome!"),
        Information("0102", "Our History"),
        Information("0103", "Our Values"),
        Information("0104", "Guest Services"),
        Information(
            "0105", "Others", arrayOf( Information("106", "Foo") )
        )
    )
)

И вам нужно значение по умолчанию для массива, когда нет подкатегорий, если вы не хотите передавать значение null :

class Information(val id: String, val name: String, val subCategories: Array<Information>? = null)
...