Estrutura aninhada em Golang

Uma estrutura ou struct em Golang é um tipo definido pelo usuário que nos permite criar um grupo de elementos de diferentes tipos em uma única unidade. Qualquer entidade do mundo real que tenha algum conjunto de propriedades ou campos pode ser representada como uma struct.

Estrutura aninhada em Golang

Como usar estruturas aninhadas em Golang

A linguagem Go permite estruturas aninhadas. Uma estrutura que é 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{
  // Các trường
} 
type struct_name_2 struct{
  variable_name  struct_name_1

}

Considere o exemplo a seguir para entender a estrutura aninhada em Golang:

Exemplo 1:

// Chương trình Go minh hoạc
// cấu trúc lồng nhau
package main

import "fmt"

// Tạo cấu trúc
type Author struct {
	name string
	branch string
	year int
}

// Tạo cấu trúc lòng nhau
type HR struct {

	// cấu trúc là một trường
	details Author
}

func main() {

	// Khởi tạo các trường
	// của cấu trúc
	result := HR{
	
		details: Author{"Sona", "ECE", 2013},
	}

	// Hiện giá trị
	fmt.Println("\nDetails of Author")
	fmt.Println(result)
}

Resultado:

Details of Author
{{Sona ECE 2013}}

Exemplo 2:

// Chương trình Golang minh họa
// cấu trúc lồng nhau
package main

import "fmt"

// Tạo cấu trúc
type Student struct {
	name string
	branch string
	year int
}

// Tạo cấu trúc lồng nhau
type Teacher struct {
	name string
	subject string
	exp	 int
	details Student
}

func main() {

	// Khởi tạo các trường
	// của cấu trúc
	result := Teacher{
		name: "Suman",
		subject: "Java",
		exp:	 5,
		details: Student{"Bongo", "CSE", 2},
	}

	// Hiện giá trị
	fmt.Println("Details of the Teacher")
	fmt.Println("Teacher's name: ", result.name)
	fmt.Println("Subject: ", result.subject)
	fmt.Println("Experience: ", result.exp)

	fmt.Println("\nDetails of Student")
	fmt.Println("Student's name: ", result.details.name)
	fmt.Println("Student's branch name: ", result.details.branch)
	fmt.Println("Year: ", result.details.year)
}

Resultado:

Details of the Teacher
Teacher's name:  Suman
Subject:  Java
Experience:  5

Details of Student
Student's name:  Bongo
Student's branch name:  CSE
Year:  2

Exemplo 3:

Em Go, uma estrutura pode ter campos que são estruturas, chamadas de estruturas aninhadas. Aqui está um exemplo de uma estrutura que tem uma estrutura aninhada:

package main

import (
	"fmt"
)

type Address struct {
	Street	 string
	City	 string
	State	 string
	PostalCode string
}

type Person struct {
	FirstName string
	LastName string
	Age	 int
	Address Address
}

func main() {
	p := Person{
		FirstName: "John",
		LastName: "Doe",
		Age:	 30,
		Address: Address{
			Street:	 "123 Main St",
			City:	 "Anytown",
			State:	 "CA",
			PostalCode: "12345",
		},
	}

	fmt.Println(p.FirstName, p.LastName)
	fmt.Println("Age:", p.Age)
	fmt.Println("Address:")
	fmt.Println("Street:", p.Address.Street)
	fmt.Println("City:", p.Address.City)
	fmt.Println("State:", p.Address.State)
	fmt.Println("Postal Code:", p.Address.PostalCode)
}

Resultado:

John Doe
Age: 30
Address:
Street: 123 Main St
City: Anytown
State: CA
Postal Code: 12345

Aqui, definimos dois tipos de struct: Pessoa e Endereço. Pessoa tem um campo struct aninhado chamado Endereço. Na função principal, criamos uma nova instância Person com um campo Address. Em seguida, imprimimos os vários valores de campo das estruturas Pessoa e Endereço usando a notação de ponto para acessar os campos aninhados.

Deixar um comentário

IPTU em Uberlândia: como emitir a segunda via e consultar débitos

IPTU em Uberlândia: como emitir a segunda via e consultar débitos

Veja como emitir a 2ª via do IPTU em Uberlândia, consultar débitos, usar o WhatsApp do SIM e saber quando recorrer ao Portal de Negociação.

Como descartar bateria de lítio em Guarulhos sem colocar no lixo comum

Como descartar bateria de lítio em Guarulhos sem colocar no lixo comum

Veja onde e como descartar bateria de lítio em Guarulhos, por que os Ecopontos municipais não recebem pilhas e baterias e o que fazer com unidades danificadas.

Como descartar geladeira em Guarulhos: Ecoponto, coleta e logística reversa

Como descartar geladeira em Guarulhos: Ecoponto, coleta e logística reversa

Saiba como descartar geladeira em Guarulhos com segurança: Ecopontos, logística reversa, preparação, transporte e cuidados com o gás refrigerante.

Como descartar micro-ondas em Fortaleza: opções corretas e cuidados antes da entrega

Como descartar micro-ondas em Fortaleza: opções corretas e cuidados antes da entrega

Saiba como descartar micro-ondas em Fortaleza, onde levar o aparelho, como preparar o transporte e quais erros evitar nos Ecopontos e na logística reversa.

Como descartar lata de spray em Manaus: o que fazer antes de levar ao PEV

Como descartar lata de spray em Manaus: o que fazer antes de levar ao PEV

Veja como descartar lata de spray em Manaus com segurança, quando usar os PEVs da Semulsp e o que fazer se a embalagem ainda tiver produto ou pressão.

Como descartar pilhas em Campo Grande: passo a passo para fazer do jeito certo

Como descartar pilhas em Campo Grande: passo a passo para fazer do jeito certo

Veja onde e como descartar pilhas em Campo Grande, como armazená-las com segurança em casa, localizar um PEV e evitar erros no descarte.

Ecoponto em Guarulhos: o que pode levar e como funciona

Ecoponto em Guarulhos: o que pode levar e como funciona

Saiba o que levar ao Ecoponto Joga-Tralha em Guarulhos, quem pode usar, limites, materiais proibidos e quando optar pelo Cata-Tralha.

Como descartar televisão em Belo Horizonte: pontos e logística reversa

Como descartar televisão em Belo Horizonte: pontos e logística reversa

Saiba como descartar televisão em Belo Horizonte: encontre pontos gratuitos, prepare o aparelho, proteja seus dados e evite a coleta seletiva e as URPVs.

Ecoponto em Santo André: o que pode levar e como funciona

Ecoponto em Santo André: o que pode levar e como funciona

Veja o que levar ao ecoponto em Santo André, os limites mensais, documentos, horários, materiais proibidos e como escolher a Estação de Coleta correta.

Como descartar micro-ondas em Nova Iguaçu: coleta, logística reversa e como conferir se deu certo

Como descartar micro-ondas em Nova Iguaçu: coleta, logística reversa e como conferir se deu certo

Saiba como descartar micro-ondas em Nova Iguaçu, quando agendar coleta, como preparar o aparelho e quais sinais confirmam uma destinação adequada.