Структура — тип данных, представляющий собой композицию набора полей.
**type** NAME_OF_STRUCTURE **struct**{
FIELDS
}
Каждое поле имеет название и тип данных, как переменная. Например, давайте определим структуру person
:
**type** person **struct** {
name **string**
age **int**
}
Структура называется person. Она имеет два поля: name (string) и age (int).
Структура является типом данных, и как только мы определили структуру у нас появляется возможность создавать переменный данного типа:
**var** tom person
С помощью инициализатора можно передать структуре начальные значения:
**var** tom person = person { "Tom", 23 }
Инициализатор представляет набор значений в фигурных скобках. Причем эти значения передаются полям структуры в том порядке, в котором поля определены в структуре. Например, в данном случае строка "Tom" передается первому полю - name, а второе значение - 23 передается второму полю - age.
Также мы можем явным образом указать какие значения передаются свойствам:
**var** alice person = person{age: 23, name: "Alice"}
Также можно использовать сокращенные способы инициализации переменной структуры:
**var** tom = person {
name: "Tom",
age: 24
}
bob := person {
name: "Bob",
age: 31
}
Можно даже не указывать никаких значений, в этом случае свойства структуры получат значения по умолчанию:
undefined := person {} // name - пустая строка, age - 0
Для обращения к полям структуры после переменной ставится точка и указывается поле структуры: