主要观点:在 Go 语言中有时需要获取常量值的指针,通常获取值容易但获取常量指针较难,介绍了从较不“hacky”到较“hacky”的几种解决方法。
关键信息:
- 可将常量提升为值来获取指针,如将桶名和键值提升为变量:
bucketName := "mah-bukkit"; key := "something"
。 aws
包中的aws.String
等函数可进行转换:aws.String("mah-bukkit")
等。- 利用 Go 泛型创建“获取此值的指针”函数:
func p[T any](val T) (*T)
。 - 从 Kubernetes 源代码中学到的技巧:
raised := &[]string{"foo"}[0]
。
重要细节: - 直接对常量获取指针会导致编译错误。
- 不同方法在使用时的具体代码形式及特点,如使用变量需每次声明,
aws
函数的内部实现等。 - 最后提醒事实和情况可能已改变,有疑问可联系。并给出版权等相关信息及服务相关内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。