Перейти к основному содержимому

Структуры в Go

Struct (сокращение от «структура») объединяет несколько членов, которые могут иметь разные типы данных, в одну переменную.

Массив тоже хранит много значений в одной переменной, но все они должны иметь один тип данных. У структуры такого ограничения нет.

Поэтому структуры удобны для хранения связанных данных вместе в виде записей.


Объявление Struct

Для объявления структуры в Go нужны два ключевых слова: type и struct.

Совет: Не все члены Person имеют один и тот же тип. name и job — это строки, а age и salary — целые числа.

Синтаксис Struct

main.go
type struct_name struct {
  member1 datatype;
  member2 datatype;
  member3 datatype;
  ...
}

Объявление Struct

main.go
type Person struct {
  name string
  age int
  job string
  salary int
}

Доступ к членам Struct

Чтобы обратиться к члену структуры, напишите имя переменной структуры, затем оператор точки (.), а затем имя члена. Здесь он используется и для установки, и для чтения членов двух переменных.

Пример

Prompt
Объявите struct Person с полями name, age, job и salary. Создайте две переменные типа Person, задайте их поля и выведите каждое поле с помощью оператора точки.
Вывод: Программа на Go и захваченный вывод

Передача Struct в качестве аргумента функции

Структуру также можно передать в функцию в качестве аргумента. Здесь printPerson() получает Person и выводит его члены, поэтому код вывода не нужно повторять.

Пример

Prompt
Передайте struct Person в функцию с именем printPerson, которая выводит все его поля. Создайте двух персон и вызовите функцию для каждой из них.
Вывод: Программа на Go и захваченный вывод