Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmSrNs 234 of 350 menu
◀ ▶

Вложенная структура в Go

Поле может само быть структурой, и тогда к внутреннему полю идут через вторую точку. Сначала имя внешнего значения и поле-структура, затем имя поля внутри этой вложенной структуры. Тип вложенного поля объявляют отдельно, как любой другой тип.

Опишем адрес с городом и пользователя с адресом:

type Address struct { City string } type User struct { Name string Address Address } user := User{ Name: "ann", Address: Address{City: "oslo"}, } fmt.Println(user.Address.City)

На экране "oslo". Цепочка user.Address.City сначала берет поле Address, затем поле City внутри него. Внешнее имя Name по-прежнему читается одной точкой.

Внутреннее поле можно менять отдельно:

type Address struct { City string } type User struct { Name string Address Address } user := User{Name: "ann", Address: Address{City: "oslo"}} user.Address.City = "bergen" fmt.Println(user.Address.City)

Даны типы Address с City и User с полями Name и Address. Создайте пользователя с городом "rome" и выведите город.

Дана структура:

type Address struct { City string } type User struct { Name string Address Address } user := User{Name: "bob", Address: Address{City: "paris"}}

Замените город на "lyon" и выведите user.Address.City.

Дан следующий код:

type Size struct { W int H int } type Rect struct { Label string Size Size } r := Rect{Label: "a", Size: Size{W: 2, H: 3}}

Выведите W и H через цепочку полей.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить