在 Go 中获取指向常量的指针

主要观点:在 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函数的内部实现等。
  • 最后提醒事实和情况可能已改变,有疑问可联系。并给出版权等相关信息及服务相关内容。
阅读 10
0 条评论