Go语言中如何将自定义类型指针转换为基础类型指针
Go中CustomStringType转string的可行方法
因为CustomStringType是基于string定义的自定义类型,它们的指针类型属于不同类型,无法直接赋值或类型断言,需要通过以下步骤完成转换:
- 先确保
a不是空指针,避免解引用时触发panic - 解引用
a得到CustomStringType类型的值,将其转换为底层的string类型 - 取转换后的
string值的地址,赋值给b
常规安全写法示例:
if a != nil { s := string(*a) b = &s }
如果能确定a绝对不为nil,也可以使用unsafe包做直接指针转换(不推荐常规业务场景使用,会绕过类型安全检查):
import "unsafe" // ... b = (*string)(unsafe.Pointer(a))
内容的提问来源于stack exchange,提问作者Marcin Nabiałek
相关产品推荐
相关产品推荐

