Avatar ·

如何在Go中为结构体字段设置默认值?

大家好!我是Go新手,遇到了一个问题:Go没有构造函数,也没有像Python或PHP那样的内置机制来指定结构体字段的默认值。假设我有一个用于应用配置的结构体: ```go type Config struct { Port int Timeout int Debug bool } ``` 我希望默认情况下`Port`为8080,`Timeout`为30秒,`Debug`为`false`。但当我创建结构体`cfg := Config{}`时,所有字段都得到零值(0, 0, false)。每次都必须显式指定所有字段:`cfg := Config{Port: 8080, Timeout: 30}`。这很不方便,尤其是当结构体有很多字段,并且我希望其中一些字段具有合理的默认值时。 我尝试过使用结构体标签,但它们似乎不影响初始化。有没有办法在结构体定义中直接设置默认值?或者需要编写某种工厂函数?但那样的话,对于每个结构体都要写一个函数...