Структуры

Структура — тип данных, представляющий собой композицию набора полей.

**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

Обращение к полям структуры

Для обращения к полям структуры после переменной ставится точка и указывается поле структуры: