Поле структуры, состоящее из 3 элементов. Как это скомпилировать?

Я видел такой код:

type Product struct {
 Name        string         `db:"product_name"`
 Id          int            `db:"id"`
}

type  Stocks { 
 Name        string         `db:"stock_name"`
 Price       float          `db:"price"`
 Type        string         `db:"type"`
}

Хотя этот код компилируется, как это может быть? Член структуры должен состоять из имени и следующего типа. Однако здесь также есть db:"product_name", который является третьим участником.

Как это может быть правдой? Что такое db:"product_name" с точки зрения Go?

Это так называемые структурные теги: golang.org/ref/spec#Struct_types

poy 17.12.2018 17:45
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
2
1
77
1

Ответы 1

The Go Programming Language Specification

Struct types

A field declaration may be followed by an optional string literal tag, which becomes an attribute for all the fields in the corresponding field declaration. An empty tag string is equivalent to an absent tag. The tags are made visible through a reflection interface and take part in type identity for structs but are otherwise ignored.

Другие вопросы по теме