我看代码时看到下面这段有点迷惑,随便写个 demo
type X struct{
}
请问(*X)(nil)表示什么? 我看了类型应该时 X 的指针,这个有什么用呢?
type X struct{
}
请问(*X)(nil)表示什么? 我看了类型应该时 X 的指针,这个有什么用呢?
|
ahsjsAug 26, 2020
1
把 nil 转为 X 指针,和普通的 nil 有些区别
a := (*X)(nil) reflect.TypeOf(nil) reflect.TypeOf(a) |
|
CEBBCATAug 26, 2020 via Android
2
我想是一个空的指向 X 的指针,具体作用还要结合代码,我好像没有这样用过
|
|
rrfengAug 26, 2020
3
跟 var a *X 没区别吧?指针声明了默认是 nil
|
|
lazypuAug 26, 2020
4
表示没这样用过, 下文是接着干啥用?
|
|
rrfengAug 26, 2020
6
Your `test3 := (*Struct)(nil)` is just a obfuscated variant of the idiomatic `var test3 *Struct`.
from https://stackoverflow.com/questions/27827871/what-the-difference-between-tnil-and-t-newt-golang |
|
liuxuAug 26, 2020
8
这种方式写 C 的和 C++的用的多
|