如何在Go中为结构体字段设置默认值?
大家好!我刚开始学习Go,遇到了一个问题。在其他语言(比如Python或C#)中,我可以在声明时轻松为类或结构体的字段设置默认值。但在Go中,当我创建一个结构体时,所有字段都会被初始化为零值(0、false、空字符串),我不明白如何让结构体实例在创建时自动获得我的值。
这是一个例子。我有一个用于服务器配置的结构体:
```go
type ServerConfig struct {
Port int
Timeout int
Name string
}
```
我希望默认情况下`Port`为8080,`Timeout`为30,`Name`为"MyServer"。但当我写:
```go
config := ServerConfig{}
fmt.Println(config.Port) // 输出0,而不是8080
```
我得到的是零值。我尝试查阅文档,但文档说Go不支持结构体字段的默认值。难道真的没有办法做到吗?也许有一些模式或惯用法?请指教。