O que são estruturas em Golang

O Que Sao Estruturas Em Golang



Na linguagem Go, uma estrutura é uma coleção de variáveis ​​(campos) agrupadas sob um único nome. É um tipo de dados composto que nos permite criar estruturas de dados personalizadas para armazenar informações relacionadas. Estruturas em Go são como classes em programação orientada a objetos como C e C++, mas não suportam herança. Em vez disso, eles dependem da composição para obter a reutilização do código. Este artigo aborda as estruturas em Golang e como podemos declarar e acessar os membros struct.

O que é uma estrutura em Golang

Em Golang, uma estrutura é um tipo de dados composto que consiste em zero ou mais campos nomeados, cada um com um tipo específico. Os campos de uma estrutura podem ser de qualquer tipo, incluindo outras estruturas, arrays, funções ou interfaces.







Aqui está um exemplo de uma estrutura em Golang:



tipo Estrutura da pessoa {
Sequência de nome completo
YearsOld int
Endereço do local
}
tipo estrutura de endereço {
StreetName  sequência
NomeCidade    string
Cadeia de caracteres CountryName
}


Aqui definimos uma estrutura Person que possui três campos: FullName, YearsOld e Location. O próprio campo Location é uma estrutura que possui três campos: StreetName, CityName e CountryName.



Como declarar Struct em Golang

Podemos declarar uma estrutura em Golang usando o tipo palavra-chave. O nome da estrutura é definido após o tipo palavra-chave e seus campos são colocados entre chaves { } . Aqui está a sintaxe para declarar uma struct em Go:





tipo structName struct {
FieldName1 FieldType1
FieldName2 FieldType2
...
}


Abaixo está um exemplo de como declarar uma struct chamada Person com dois campos name e age dos tipos string e int respectivamente:

tipo Estrutura da pessoa {
string de nome
idade int
}


No código acima, usamos o tipo palavra-chave para declarar uma nova estrutura chamada Pessoa com dois campos nome do tipo string e idade do tipo int. Os campos são separados por um Nova linha personagem, mas um ponto e vírgula (;) também pode ser usado para separá-los.



Como acessar o membro Struct em Golang

Para acessar os campos de uma instância struct na linguagem Go ponto (“.”) operador é usado. Este operador de ponto é seguido por um nome de campo. Aqui está um exemplo de como acessar os campos name e age de uma instância de struct Person:

// Crie um novo ` Pessoa ` struct instância com nome 'cash' e idade 24
cash := Pessoa { nome: 'cash' , idade: 24 }

// Acesse os campos do ` dinheiro ` instância struct
fmt.Println ( kash.name ) // Saída: 'cash'
fmt.Println ( cash.age ) // Saída: 24


No código acima, criamos uma nova instância de struct Person chamada kash com o nome dinheiro e idade 24 . Em seguida, acessamos os campos de nome e idade da instância kash struct usando o (“.”) operador e imprimi-los no console.

É importante observar que os campos de uma instância de struct são acessados ​​usando a notação de ponto e não a seta notação (->) usado em algumas outras linguagens de programação. A notação de ponto é usada consistentemente em Go para acessar campos de structs, bem como propriedades e métodos de outros tipos.

Exemplo de código de declaração e acesso ao membro Struct em Golang

Abaixo está um exemplo completo de declaração da struct Person em Go e imprimindo seus valores na tela:

pacote principal
importar 'fmt'
tipo Estrutura da pessoa {
string de nome
idade int
}
função principal ( ) {
// Crie um novo ` Pessoa ` struct instância com nome 'cash' e idade 24
cash := Pessoa { nome: 'cash' , idade: 24 }
// imprimir o ` nome ` e ` idade ` de ` dinheiro ` struct instância para o console
fmt.Printf ( 'Nome: %s \n ' , kash.name )
fmt.Printf ( 'Idade: %d \n ' , cash.age )
}


No código escrito acima, primeiro declaramos o Pessoa struct. Essa estrutura contém dois campos que são nome e idade. Depois disso, criamos uma nova instância de struct Person chamada kash com o nome dinheiro e idade 24 .

Para exibir os campos de nome e idade, usamos o fmt.Printf funcionar com o %s e %d especificadores de formato para imprimir os campos de nome e idade, respectivamente.

Após a execução, a seguinte saída de código aparece no console:

Como passar Struct como argumentos de função

Para passar uma struct como um argumento de função em Go, simplesmente temos que especificar o tipo de struct como o tipo de parâmetro na assinatura da função e, em seguida, passar a instância de struct como um argumento ao chamar a função.

Código de exemplo

O exemplo abaixo mostra como passar uma instância de struct Person como argumento para uma função na linguagem Go e imprimir seus valores na tela:

pacote principal
importar 'fmt'
// Declare uma estrutura chamada ` Pessoa ` com dois campos: ` nome ` e ` idade `
tipo Estrutura da pessoa {
string de nome
idade int
}
// Declare um função nomeado ` imprimirPessoa ` isso leva um ` Pessoa ` estrutura como um argumento
func imprimirPessoa ( p Pessoa ) {
fmt.Printf ( 'Nome: %s \n ' , p.name )
fmt.Printf ( 'Idade: %d \n ' , página )
}
função principal ( ) {
// Crie um novo ` Pessoa ` struct instância com nome 'cash' e idade 24
cash := Pessoa { nome: 'cash' , idade: 24 }
// Passe o ` dinheiro ` instância de estrutura para o ` imprimirPessoa ` função
imprimirPessoa ( dinheiro )
}


No código acima, primeiro declaramos a estrutura Person com dois campos, nome, e idade . Em seguida, declaramos uma função chamada imprimirPessoa que usa uma estrutura Person como um argumento e imprime seus campos de nome e idade na tela usando a função fmt.Printf.

Na função principal, criamos uma nova instância de struct Person chamada kash com o nome dinheiro e 24 anos. Em seguida, passamos a instância kash struct para a função printPerson chamando a função printPerson e passando dinheiro como o argumento.

A seguinte saída pode ser vista no console após a execução do código acima:

Conclusão

Em Golang, as estruturas podem representar tipos de dados complexos e encapsular dados relacionados. Uma estrutura é um tipo de dados composto de um ou mais campos, cada um dos quais recebe um nome e tipo específicos. Os campos de uma estrutura podem ser de qualquer tipo, incluindo outras estruturas, arrays, funções ou interfaces. Este artigo discutiu as estruturas Go em detalhes, para obter mais informações sobre como declarar e acessar os elementos struct, leia o artigo.