English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Golang

Контрольные инструкции в Golang

Функции и методы в Golang

Структуры в Golang

Срезы и массивы в Golang

Строки (String) в Golang

Пункторы в Golang

Интерфейсы в Golang

Конкурентоспособность в Golang

Экземпляры исключений (Error) в Golang

Другие темы Golang

Анонимные структуры и поля в Go

Структуры в Golang — это пользовательские типы, которые позволяют создавать группу элементов различных типов в одном блоке. Любой реальный объект, обладающий набором свойств или полей, можно представить в виде структуры.

Анонимная структура

В языке Go разрешается создавать анонимные структуры. Анонимные структуры — это структуры, которые не содержат имен. Они полезны, когда вам нужно создать структуру, которая будет использоваться один раз. Вы можете создать анонимную структуру следующим образом:

variable_name := struct{
// fields
}{// Field_values}

Давайте рассмотрим пример, чтобы обсудить эту концепцию:

// Концепция анонимной структуры
package main 
  
import "fmt"
  
func main() { 
  
    // Создание и инициализация анонимной структуры
    Element := struct { 
        name      string 
        branch    string 
        language  string 
        Particles int
    }{ 
        name:      "詹三", 
        branch:    "开发部", 
        language:  "C++", 
        Particles: 498, 
    } 
  
    // Отображение анонимной структуры
    fmt.Println(Element) 
}

Вывод:

{詹三 开发部 C++ 498}

Анонимное поле

В структурах Go разрешается создавать анонимные поля. Анонимные поля — это поля, которые не содержат имен. Достаточно просто указать тип поля, и Go автоматически использует этот тип в качестве имени поля. Вы можете создать анонимное поле структуры следующим образом:

type struct_name struct{
    int
    bool
    float64
}

Важно:

  • В структуре не разрешается создавать два или более полей одного и того же типа, как показано ниже:

    type student struct{
    int
    int
    }

    Если попытаться сделать это, компилятор выдаст ошибку.

  • Разрешается комбинировать анонимные поля с именованными полями, как показано ниже:

    type student struct{
     name int
     price int
     string
    }
  • Давайте рассмотрим пример, чтобы обсудить концепцию анонимных полей:

    package main 
      
    import "fmt"
      
    // Создание анонимного поля структуры 
    type student struct { 
        int
        string 
        float64 
    } 
      
    // Основная функция 
    func main() { 
      
        // Присвоение значений полей анонимной структуры
        value := student{123, "Bud", 8900.23} 
      
        fmt.Println("Количество поступивших: ", value.int) 
        fmt.Println("Студентское имя: ", value.string) 
        fmt.Println("Цена套餐: ", value.float64) 
    }

    Вывод:

    Количество поступивших:  123
    Студентское имя:  Bud
    Цена пакета :  8900.23