GO_INTERVIEW_LIB Telegram 421
💬 Что из себя представляют теги структур в Go?

Теги структур — это аннотации, которые отображаются после типа в объявлении структуры Go. Каждый тег состоит из коротких строк, которым назначены определенные значения.

Они не влияют на саму логику программы, но позволяют контролировать процесс сериализации и десериализации данных, валидацию и многое другое.

Пример использования:


type User struct {
Name string `json:"name"`
Age int `json:"age"`
}


В этом примере к полям структуры User добавлены теги json, которые указывают, как эти поля должны быть сериализованы в JSON. Тег json:"name" говорит, что поле Name должно быть представлено как "name" в JSON, аналогично для поля Age.

Для работы с этими тегами можно использовать пакет reflect. Например, чтобы получить значение тега json для поля Name, можно использовать:


package main

import (
"fmt"
"reflect"
)

type User struct {
Name string `json:"name"`
Age int `json:"age"`
}

func main() {
p := User{Name: "John Doe", Age: 30}
t := reflect.TypeOf(p)
field, ok := t.FieldByName("Name")
if ok {
fmt.Println(field.Tag.Get("json")) // Выведет: name
}
}
👍22



tgoop.com/go_interview_lib/421
Create:
Last Update:

💬 Что из себя представляют теги структур в Go?

Теги структур — это аннотации, которые отображаются после типа в объявлении структуры Go. Каждый тег состоит из коротких строк, которым назначены определенные значения.

Они не влияют на саму логику программы, но позволяют контролировать процесс сериализации и десериализации данных, валидацию и многое другое.

Пример использования:


type User struct {
Name string `json:"name"`
Age int `json:"age"`
}


В этом примере к полям структуры User добавлены теги json, которые указывают, как эти поля должны быть сериализованы в JSON. Тег json:"name" говорит, что поле Name должно быть представлено как "name" в JSON, аналогично для поля Age.

Для работы с этими тегами можно использовать пакет reflect. Например, чтобы получить значение тега json для поля Name, можно использовать:


package main

import (
"fmt"
"reflect"
)

type User struct {
Name string `json:"name"`
Age int `json:"age"`
}

func main() {
p := User{Name: "John Doe", Age: 30}
t := reflect.TypeOf(p)
field, ok := t.FieldByName("Name")
if ok {
fmt.Println(field.Tag.Get("json")) // Выведет: name
}
}

BY Библиотека Go для собеса | вопросы с собеседований


Share with your friend now:
tgoop.com/go_interview_lib/421

View MORE
Open in Telegram


Telegram News

Date: |

How to Create a Private or Public Channel on Telegram? “[The defendant] could not shift his criminal liability,” Hui said. 6How to manage your Telegram channel? Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” When choosing the right name for your Telegram channel, use the language of your target audience. The name must sum up the essence of your channel in 1-3 words. If you’re planning to expand your Telegram audience, it makes sense to incorporate keywords into your name.
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American