Golang Struct Tags

Golang Struct Tags
Uma estrutura refere -se a uma entidade nomeada com campos, cada um com seu nome e tipo. Estruturas são úteis quando você precisa definir tipos personalizados.

Um exemplo de um programa STREST in the Go é fornecido abaixo:

Tipo de estrutura de usuário
eu não fiz
String de nome
idade int

O exemplo anterior mostra uma estrutura explícita onde os campos pertencem a essa estrutura específica.

Você também pode declarar uma estrutura implícita onde os campos são declarados em outra estrutura. Estes também são conhecidos como estruturas incorporadas.

Um exemplo é mostrado abaixo:

Tipo de estrutura de usuário
eu não fiz
String de nome
idade int

Tipo Developer Struct
Do utilizador
Salário Int

Neste exemplo anterior, o desenvolvedor Struct acessa os campos da estrutura do usuário.

Tags de estrutura

Nos programas Go, você pode adicionar uma string opcional literal a um campo STRUT. Isso é conhecido como uma tag de estrutura. É usado para manter a meta-informação para um campo de estrutura. Você pode exportar as informações em campo para outros pacotes para executar uma operação ou estruturar os dados adequadamente.

Você frequentemente encontra tags em pacotes de codificação, como XML, JSON, YAML, ORMS e Config Management.

Para declarar uma etiqueta para um campo STRUT, você pode passar o par de valores-chave dentro do aparelho literal da string como "chave: valor". Para adicionar mais de uma tag, separe cada tag usando um espaço.

Aqui está o seguinte exemplo:

Tipo de estrutura de usuário
eu não fiz
Nome String 'Max: "10"'
idade int "

Estruturar tags e refletir pacote

Para acessar e usar tags de estrutura, você precisará do pacote refletir. Faz parte da biblioteca padrão do Go e você pode importá -la com a cláusula:

importar "refletir"

Ele fornece os métodos de obtenção e pesquisa para trabalhar com tags.

Para verificar se a tag é encontrada em um campo, podemos usar o método de pesquisa. Um código de exemplo é fornecido abaixo:

Pacote principal
importação (
"FMT"
"Reflita"
)
Tipo de estrutura de usuário
eu não fiz
Nome String 'Max: "10"'
idade int "

func main ()
u: = usuário 1, "Jane Doe", 34
t: = refletir.Typeof (u)
para i: = 0; eu < t.NumField(); i++
f: = t.Campo (i)
Se _, ok: = f.Marcação.Lookup ("Max"); OK
fmt.Println ("tag encontrado")
outro
fmt.Println ("tag não encontrado")


O exemplo de código anterior será lançado sobre os campos da estrutura e verifique se a tag especificada é encontrada no campo.

Para obter o campo com a tag especificada, podemos fazer o seguinte:

Pacote principal
importação (
"FMT"
"Reflita"
)
Tipo de estrutura de usuário
eu não fiz
Nome String 'Max: "10"'
idade int "

func main ()
u: = usuário 1, "Jane Doe", 34
t: = refletir.Typeof (u)
para i: = 0; eu < t.NumField(); i++
fmt.Println (t.Campo (i).Nome)
fmt.Println (t.Campo (i).Marcação.Get ("Max")))

Conclusão

Este artigo abrange os fundamentos do trabalho e do uso de tags de estrutura e o pacote refletir. Além disso, a definição e a natureza das estruturas foram discutidas. Esperamos que você tenha achado este artigo útil. Confira outros artigos de dica do Linux para obter mais dicas e tutoriais.