判断go对象是否能直接赋值进行深拷贝

jan-bar · · 2617 次点击
jan-bar
想要拥有,必定付出。
那就是,按照下面这种改法是吧?果然大佬666啊,不过我觉得可以按照这篇 [文章](https://sorcererxw.com/articles/go-comparable-type) 里面的内容把所有类型都判断一下更加精确。 ```go if t.Comparable() { return true } ``` 改为 ```go if pointerless(t) { return true } ```
#5
更多评论
```go func pointerless(x any) bool { var ptr uintptr ptr = *(*uintptr)(unsafe.Pointer(uintptr(*(*unsafe.Pointer)(unsafe.Pointer(&x))) + unsafe.Sizeof(ptr))) return ptr == 0 } ```
#2