Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Вложенные структуры
Структуры можно вкладывать. При обращении к полю вложенной структуры дополнительно указывается название структуры родителя. В качестве примера объявим структуру Point
(точка), а затем используем ее для описания координат прямоугольника (листинг 11.4).
Листинг 11.4. Использование вложенных структур
package main
import "fmt"
type Point struct {
X, Y int
}
type Rect struct {
TopLeft, BottomRight Point
}
func main() {
rect := Rect{Point{10, 20}, Point{30, 40}}
fmt.Println(rect) // {{10 20} {30 40}}
rect.TopLeft.X = 0
rect.TopLeft.Y = 20
rect.BottomRight.X = 100
rect.BottomRight.Y = 150
fmt.Println(rect.TopLeft.X, rect.TopLeft.Y) // 0 20
fmt.Println(rect.BottomRight.X, rect.BottomRight.Y) // 100 150
}
Можно также создавать анонимные вложенные структуры:
type MyStruct struct {
a int
b struct {
c, d int
}
}
Инициализация и доступ к полям осуществляется следующим образом:
obj := MyStruct{10, struct {
c, d int
}{30, 40}}
fmt.Println(obj) // {10 {30 40}}
fmt.Println(obj.a) // 10
fmt.Println(obj.b.c) // 30
fmt.Println(obj.b.d) // 40
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов