萌新go。想问个问题:
为什么这样写可以
a := StringClass{}
a.HasValue(this.identityNo)
这样写不可以(提示无法在 'StringClass{}' 中调用指针方法
)
b := StringClass{}.HasValue(this.identityNo)
一定要定义,和使用,分开来写吗?
萌新go。想问个问题:
为什么这样写可以
a := StringClass{}
a.HasValue(this.identityNo)
这样写不可以(提示无法在 'StringClass{}' 中调用指针方法
)
b := StringClass{}.HasValue(this.identityNo)
一定要定义,和使用,分开来写吗?
2 回答1.3k 阅读
2 回答1.1k 阅读
2 回答1.1k 阅读
2 回答1k 阅读
3 回答744 阅读
2 回答920 阅读
1 回答824 阅读
tldr: 不能在结构体字面量上调用 receiver 为指针的方法。
Calls
Addressable
composite literal 并非 addressable ,所以不能直接调用 receiver 为指针的方法。
但是,可以用
(&stringClass{}).foo()
。因为作为一个特例,&
可以作用于 composite literal 。