2017-01-20 1 views
0
type User struct { 
    Id int `orm:"auto"` 
    Name string `orm:"size(100)"` 
} 

Какова цель «orm:» auto «'и' orm:" size (100) "'.Я не понимаю, что такое «поле» означает в структуре для базы данных, какова цель:

Я имею в виду, что знаю, что это поле соответствует ограничениям, которые я установил в моей базе данных, но почему они находятся здесь в коде? почему нет такой структуры?

type User struct { 
    Id int  
    Name string 
} 

это что-то меняет? я не понимаю. спасибо за чтение и помощь мне.

+0

Вы имели в виду 'gorm:" auto "' или я читаю неправильную документацию? –

+0

[Похоже, вы нечестны в использовании GORM] (https://godoc.org/github.com/astaxie/beego/orm). Тем не менее, я думаю, что мой ответ применим. –

+3

Они называются _tags_, и они позволяют прикрепить любую метаинформацию к полям, в этом случае будут использоваться некоторые реализации ORM (например, пакет 'gorm'). См. [Какая польза для тегов в Go?] (Http://stackoverflow.com/questions/10858787/what-are-the-uses-for-tags-in-go/30889373#30889373) – icza

ответ

1

Прежде всего, похоже, что вы не используете GORM, но something else. Я буду считать, что здесь.

что-то меняет?

Да. Это теги, которые добавляют дополнительные атрибуты в соответствующее поле.

Например, "auto" делает поле автоинкремента, и "size(100)" & hellip; хорошо, я думаю, вы, вероятно, можете догадаться, если вы примените немного мозговой силы!

Почему нет такой структуры?

Существует!

Следующая альтернативная структура вполне допустимо, но только не то, что автор кода предназначен:

type Result struct { 
    Name string 
    Age int 
} 

Consult the documentation, чтобы узнать, что теги можно использовать. Вам нужно будет прочитать больше, чем просто первые параграфы описания пакета, чтобы узнать, как работает эта технология!

Отказ от ответственности: Никогда не использовался Go или эта библиотека в моей жизни. Вышесказанное происходит от быстрого Google и взгляда на руководство.

Смежные вопросы