English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
no Go, a estrutura ou struct é um tipo definido pelo usuário, que permite criar um grupo de elementos de diferentes tipos em uma unidade. Qualquer entidade real que tenha um grupo de atributos ou campos pode ser representada por uma estrutura. Este conceito é comparado com a classe em programação orientada a objetos. Pode ser chamado de classe leve, que não suporta herança, mas suporta composição.
no Go, pode-se usaroperador ==oumétodo DeeplyEqual()comparar duas estruturas do mesmo tipo e que contêm os mesmos campos de valores. Se as estruturas forem iguais (em termos de valores dos campos), o operador e o método retornam true; caso contrário, retornam false. E, se os variáveis comparadas pertencerem a estruturas diferentes, o compilador fornecerá um erro. Vamos discutir esse conceito com um exemplo:
Atenção: o método DeeplyEqual() está definido na biblioteca "reflect".
//conceito de igualdade de estruturas //verificar a igualdade de estruturas usando o operador == package main import "fmt" //criar uma estrutura type Author struct { nome string rama string linguagem string Partículas int } func main() { //criar variáveis //estrutura de autor a1 := Author{ nome: "Moana", rama: "CSE", linguagem: "Python", Partículas: 38, } a2 := Author{ nome: "Moana", rama: "CSE", linguagem: "Python", Partículas: 38, } a3 := Author{ nome: "Dona", rama: "CSE", linguagem: "Python", Partículas: 38, } //verificar a igualdade de a usando o operador ==1com a2é igual if a1 == a2 { fmt.Println("variável a1igual à variável a2) } else { fmt.Println("variável a1não igual à variável a2) } if a2 == a3 { fmt.Println("variável a2igual à variável a3) } else { fmt.Println("variável a2não igual à variável a3) } }
saída:
variável a1igual à variável a2 variável a2não igual à variável a3
//usar o método DeepEqual() package main import ( "fmt" "reflect" ) //criar uma estrutura type Author struct { nome string rama string linguagem string Partículas int } func main() { //definir variáveis //estrutura de autor a1 := Author{ nome: "Soana", rama: "CSE", linguagem: "Perl", Partículas: 48, } a2 := Author{ nome: "Soana", rama: "CSE", linguagem: "Perl", Partículas: 48, } a3 := Author{ nome: "Dia", rama: "CSE", linguagem: "Perl", Partículas: 48, } //comparar a1e a2, usar o método DeepEqual() fmt.Println("a1Igual a a2sim: ", reflect.DeepEqual(a1, a2)) //comparar a2e a3, usar o método DeepEqual() fmt.Println("a2Igual a a3sim: ", reflect.DeepEqual(a2, a3)) }
saída:
a1Igual a a2sim: true a2Igual a a3Sim: false