English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
EstruturaEm Golang é um tipo definido pelo usuário, que permite criar um conjunto de elementos de diferentes tipos em um único bloco. Qualquer entidade real que tenha um conjunto de atributos ou campos pode ser representada como uma estrutura. O Go permite estruturas aninhadas. Uma estrutura é um campo de outra estrutura, chamada de estrutura aninhada. Em outras palavras, uma estrutura dentro de outra estrutura é chamada de estrutura aninhada.
Sintaxe:
type struct_name_1 struct{}} // Fields } type struct_name_2 struct{}} nome_da_variável nome_da_estrutura_1 }
Vamos discutir esse conceito com um exemplo:
//Estrutura aninhada package main import "fmt" //Criar estrutura type Author struct { name string branch string year int } //Criar estrutura aninhada type HR struct { //Estrutura de campos details Author } func main() { // Inicializar campos da estrutura result := HR{ details: Author{"Sona", "ECE", 2013, } //Imprimir valor de saída fmt.Println("\nDetalhes do autor") fmt.Println(result) }
Saída:
Detalhes do autor {{Sona ECE 2013}}
Exemplo de estrutura aninhada2:
package main import "fmt" //Criar estrutura type Student struct { name string branch string year int } //Criar estrutura aninhada type Teacher struct { name string subject string exp int details Student } func main() { //Inicializar campos da estrutura result := Teacher{ name: "Suman", subject: "Java", exp: 5, details: Student{"Bongo", "CSE", 2, } fmt.Println("Detalhes do professor") fmt.Println("Nome do professor: ", result.name) fmt.Println("Disciplina: ", result.subject) fmt.Println("Experiência: ", result.exp) fmt.Println("\nDetalhes do estudante") fmt.Println("Nome do estudante: ", result.details.name) fmt.Println("Nome do departamento do estudante: ", result.details.branch) fmt.Println("Idade: ", result.details.year) }
Saída:
Detalhes do professor Nome do professor: Suman Disciplina: Java Experiência: 5 Detalhes do estudante Nome do estudante: Bongo Nome do departamento do estudante: CSE Idade: 2