初始化结构体中的字符串指针
在 Go 中,使用指向字符串的指针初始化结构体(其中指针可以为 nil)需要小心处理。以下代码片段举例说明了这一挑战:
type Config struct { Uri *string } func init() { var config = Config{ Uri: "my:default" } }
此操作失败并出现错误:
cannot use "string" (type string) as type *string in field value
要解决此问题,不能简单地指向上述代码中的常量字符串值。相反,需要一个变量:
type Config struct { Uri *string } func init() { v := "my:default" var config = Config{ Uri: &v } }
在此代码中,创建变量 v 并使用所需值进行初始化。然后,v的地址(即&v)被分配给结构体的Uri字段。这是可行的,因为 Uri 字段是一个指向字符串的指针,而 v 的地址是 *string 类型。
以上是如何在 Go 中初始化结构体中的字符串指针?的详细内容。更多信息请关注PHP中文网其他相关文章!