РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
451 of 1593 menu

Объявление структуры

Объявление структуры в Go выполняется с помощью ключевого слова struct. Структура — это составной тип данных, который объединяет набор полей (переменных) в единую логическую группу. При объявлении структуры мы определяем её имя и перечень полей с указанием их типов. В дальнейшем структура может использоваться для создания переменных этого типа, доступа к полям и описания поведения через методы.

Синтаксис

type StructName struct { Field1 Type1 Field2 Type2 // другие поля }

Объявление структуры начинается с ключевого слова type, затем указывается имя структуры (например, Person), после чего следует ключевое слово struct и блок фигурных скобок, внутри которых перечисляются поля. Каждое поле состоит из имени и типа. Поля могут быть любого типа: встроенные (int, string, bool), другие структуры, срезы, карты и т.д.

Пример

Давайте объявим структуру Person с полями Name и Age и создадим её экземпляр:

package main import "fmt" type Person struct { Name string Age int } func main() { person := Person{ Name: "Alice", Age: 30, } fmt.Println(person) }

Результат выполнения кода:

{Alice 30}

Пример

Объявим структуру Book с полями разных типов и создадим её экземпляр с помощью литерала:

package main import "fmt" type Book struct { Title string Pages int InStock bool } func main() { book := Book{ Title: "The Go Programming Language", Pages: 400, InStock: true, } fmt.Printf("Title: %s, Pages: %d, In stock: %t\n", book.Title, book.Pages, book.InStock) }

Результат выполнения кода:

"Title: The Go Programming Language, Pages: 400, In stock: true"

Пример

Структура может содержать поля, которые сами являются структурами. Объявим структуру Address и вложим её в структуру Employee:

package main import "fmt" type Address struct { City string Street string ZipCode int } type Employee struct { Name string Age int Address Address } func main() { emp := Employee{ Name: "Bob", Age: 35, Address: Address{ City: "New York", Street: "Broadway", ZipCode: 10001, }, } fmt.Printf("Employee: %s, lives in %s\n", emp.Name, emp.Address.City) }

Результат выполнения кода:

"Employee: Bob, lives in New York"

Смотрите также

  • статью Поля структур,
    в которой подробно описаны правила именования и использования полей
  • статью Экспортируемые поля,
    которая объясняет, как сделать поля доступными из других пакетов
  • статью Доступ к полям,
    которая показывает, как читать и изменять значения полей структуры
  • статью Анонимные поля,
    которая описывает встраивание полей без имени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить