Avatar ·

如何在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不支持结构体字段的默认值。难道真的没有办法做到吗?也许有一些模式或惯用法?请指教。