我正在尝试使用 sarama(管理模式)来创建主题。没有 ConfigEntries 工作正常。但我需要定义一些配置。我设置了主题配置(这里发生了错误): tConfigs := map[string]*string{ "cleanup.policy": "delete", "delete.retention.ms": "36000000", }但后来我得到一个错误:./main.go:99:28: cannot use "delete" (type string) as type *string in map value./main.go:100:28: cannot use "36000000" (type string) as type *string in map value我正在尝试使用这样的管理模式:err = admin.CreateTopic(t.Name, &sarama.TopicDetail{ NumPartitions: 1, ReplicationFactor: 3, ConfigEntries: tConfigs,}, false)这是 sarama 模块中定义 CreateTopic() 的行 https://github.com/Shopify/sarama/blob/master/admin.go#L18基本上,我不明白指针字符串的映射是如何工作的:)
1 回答
哔哔one
TA贡献1854条经验 获得超8个赞
要使用复合文字string
初始化具有指针值类型的映射,您必须使用指针值。文字不是指针,它只是一个值。string
string
string
获取指向string
值的指针的一种简单方法是获取类型变量的地址string
,例如:
s1 := "delete"
s2 := "36000000"
tConfigs := map[string]*string{
"cleanup.policy": &s1,
"delete.retention.ms": &s2,
}
为了方便多次使用,创建一个辅助函数:
func strptr(s string) *string { return &s }
并使用它:
tConfigs := map[string]*string{
"cleanup.policy": strptr("delete"),
"delete.retention.ms": strptr("36000000"),
}
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消