Те, что я называю «аннотации 'они используются различными пакетами (в данном случае gorm
), чтобы предоставить дополнительную информацию о том, как обращаться с типом. Чаще всего вы видите их на объектах передачи данных (например, json и xml), оба пакета требуют их в большинстве случаев использования.
В этом случае вы рассказываете gorm
это поле является первичным ключом. С беглого взгляда на эти пакеты docs это для реляционного моделирования (например, настройка типов для сопоставления с rmdb или что-то в этом роде), поэтому здесь имеет смысл видеть такие вещи, как nullable, pk или fk.
См [это] (http://stackoverflow.com/questions/10858787/what-are-the-uses-for-tags-in-go) пост для общего объяснения. Ответ Лео Корреа дает конкретное значение для этого конкретного тега – IamNaN