[Go]空接口类型断言后 .(指针类型) 和.(具体对象) 的不同区别

我们使用空接口 interface{} 可以接收任何类型的值

 

拿到以后我们还需要类型断言把类型转换回原始类型 ,空接口可以存储指针变量 , 也可以存储具体类型

断言回原始类型后有这样区别

如果是具体类型 , 直接赋值会报错 " cannot assign to xxxxx" 

因为这时候是一个拷贝后的具体类型了 , 直接赋值修改是不被允许的 , 需要使用个新的变量接收

 

 

如果是指针类型就可以直接赋值修改原始值了

 

posted @ 2021-05-07 15:51  陶士涵  阅读(25)  评论(0编辑  收藏  举报