今天介绍下 go
中的 interface(any)
的 nil
判断,项目中遇到的一个小问题,知识遗忘了,再做个记录。
前言
最近在合作开发项目的过程中,发现小伙伴写了一段代码,示意代码如下:
package main
import(
"encoding/json"
"fmt"
)
type dataWrapper struct {
data any
}
func convert(v any) *dataWrapper {
d := new(dataWrapper)
d.data = v
return d
}
type sureData struct {
Name string
}
func (d *dataWrapper) sureData() *sureData {
buf, _ := json.Marshal(d.data)
data := new(sureData)
json.Unmarshal(buf, data)
return data
}
type oldData struct {
Name string
}
func main() {
var data *oldData
fmt