... > GO > Структуры (structs) в...

Структуры (structs) в GO

НАВИГАЦИЯ ПО СТРАНИЦЕ

Определение структуры Вложенные структуры Анонимные структуры

Структуры (structs) — это составные типы данных, которые могут содержать поля разных типов. Они предоставляют удобный способ объединения нескольких переменных в одну структуру данных.

Определение структуры

Структуры определяются с использованием ключевого слова type и ключевого слова struct. Внутри структуры вы можете определить поля с указанием их типов.

package main

import "fmt"

// Определение структуры
type Person struct {
    FirstName string
    LastName  string
    Age       int
}

func main() {
    // Инициализация экземпляра структуры
    person := Person{
        FirstName: "Alice",
        LastName:  "Smith",
        Age:       30,
    }

    // Доступ к полям структуры
    fmt.Println(person.FirstName)  // Вывод: Alice
    fmt.Println(person.LastName)   // Вывод: Smith
    fmt.Println(person.Age)        // Вывод: 30
}

Вложенные структуры

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

package main

import "fmt"

type Address struct {
    Street  string
    City    string
    Country string
}

type Person struct {
    FirstName string
    LastName  string
    Age       int
    Address   Address // Вложенная структура
}

func main() {
    person := Person{
        FirstName: "Alice",
        LastName:  "Smith",
        Age:       30,
        Address: Address{
            Street:  "123 Main St",
            City:    "Cityville",
            Country: "Countryland",
        },
    }

    // Доступ к вложенным полям структуры
    fmt.Println(person.Address.Street)   // Вывод: 123 Main St
    fmt.Println(person.Address.City)     // Вывод: Cityville
    fmt.Println(person.Address.Country)  // Вывод: Countryland
}

Анонимные структуры

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

package main

import "fmt"

func main() {
    // Анонимная структура
    person := struct {
        FirstName string
        LastName  string
        Age       int
    }{
        FirstName: "Bob",
        LastName:  "Johnson",
        Age:       25,
    }

    fmt.Println(person.FirstName)  // Вывод: Bob
    fmt.Println(person.LastName)   // Вывод: Johnson
    fmt.Println(person.Age)        // Вывод: 25
}

Структуры в GO предоставляют удобный и гибкий способ организации данных. Они часто используются при создании пользовательских типов данных и представлении сложных структур данных.