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 позволяет использовать вложенные структуры. Структура может быть полем другой структуры, что называется вложенной структурой. Иначе говоря, структура в другой структуре называется вложенной структурой.

Синтаксис:

type struct_name_1 struct{
  // Fields
} 
type struct_name_2 struct{
  variable_name  struct_name_1
}

Давайте рассмотрим этот концепт с помощью примера:}}

//Вложенная структура 
package main 
  
import "fmt"
  
//Создание структуры
type Author struct { 
    name string 
    branch string 
    year int
} 
  
//Создание вложенной структуры
type HR struct { 
  
    //Структура полей
    details Author 
} 
  
func main() { 
  
    //Инициализация полей структуры 
    result := HR{       
        details: Author{"Sona", "ECE", 2013}, 
    } 
  
    //Вывод значений
    fmt.Println("\nПодробная информация об авторе") 
    fmt.Println(result) 
}

Вывод:

Подробная информация об авторе
{{Sona ECE 2013}}

Пример вложенной структуры 2:

package main 
  
import "fmt"
  
//Создание структуры 
type Student struct { 
    name string 
    branch string 
    year int
} 
  
//Создание вложенной структуры
type Teacher struct { 
    name string 
    subject string 
    exp int
    details Student 
} 
  
func main() { 
  
    //Инициализация полей структуры
    result := Teacher{ 
        name:    "Suman", 
        subject: "Java", 
        exp:     5, 
        details: Student{"Bongo", "CSE", 2}, 
    } 
   
    fmt.Println("Подробная информация о преподавателе") 
    fmt.Println("Имя преподавателя: ", result.name) 
    fmt.Println("Дисциплина: ", result.subject) 
    fmt.Println("Опыт: ", result.exp) 
  
    fmt.Println("\nПодробная информация о студенте") 
    fmt.Println("Имя студента: ", result.details.name) 
    fmt.Println("Название отдела студента: ", result.details.branch) 
    fmt.Println("Возраст: ", result.details.year) 
}

Вывод:

Подробная информация о преподавателе
Имя преподавателя:  Suman
Дисциплина:  Java
Опыт:  5
Подробная информация о студенте
Имя студента:  Bongo
Название отдела студента:  CSE
Возраст:  2