Протокол Buffers (protobuf) -- это язык-независимый способ определения схемы данных и сериализации/десериализации структур данных. Протокол Buffers предоставляет механизм генерации кода на разных языках программирования, включая Go и Java.
Одна из причин, по которой protobuf не генерирует конструкторы в Go, заключается в том, что в Go конструкторы не требуется использовать в качестве способа инициализации структуры данных. В Go обычно используются литералы структуры или непосредственное присваивание значений полям структуры.
Однако, для удобства использования, вы можете вручную определить функцию-конструктор для создания экземпляра структуры protobuf. Например, для структуры с именем "MyMessage", вы можете определить функцию вида:
```go
func NewMyMessage(field1 string, field2 int32) *MyMessage {
return &MyMessage{
Field1: field1,
Field2: field2,
}
}
```
Эта функция-конструктор создает и инициализирует экземпляр структуры "MyMessage" с указанными значениями полей.
В целом, хотя protobuf не генерирует конструкторы в Go, вы можете легко создать их вручную для создания экземпляров структур protobuf с нужными значениями полей.