English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Структуры в 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