go的方法

go的方法,第1张

概述receiver为值的方法,编译器实现了对应的receiver为指针的方法,不是简单的取值后调用的包装,而是真正 *** 作该字段 receiver为指针的方法,则没有实现对应的receiver为值的方法,值可以调用只是语法糖(取指针后调用) 编译器对接口则没有语法糖提供 method-value绑定的receiver在绑定时就确定了,乃是一个拷贝,而非外部变量 method-expression则与普通 receiver为值的方法,编译器实现了对应的receiver为指针的方法,不是简单的取值后调用的包装,而是真正 *** 作该字段
receiver为指针的方法,则没有实现对应的receiver为值的方法,值可以调用只是语法糖(取指针后调用)
编译器对接口则没有语法糖提供
method-value绑定的receiver在绑定时就确定了,乃是一个拷贝,而非外部变量

method-Expression则与普通的函数无异(注意receiver类型的不同)

package maintype INT intfunc (i INT) A() {	print(int(i)," ")}func (i *INT) B() {	print(int(*i)," ")}func (i INT) C() {	i+=1}func (i *INT) D() {	*i+=1}func main() {	var i INT	j:=&i	a:=i.A	b:=i.B	c:=INT.A	d:=(*INT).B		i.B()	i.C()	i.B()	i.D()	i.B()		print("\n-------\n")		j.B()	j.C()	j.B()	j.D()	j.B()		print("\n-------\n")		a()	b()	c(i)	d(&i)		print("\n-------\n")		i=INT(2)	a()	b()	c(i)	d(&i)}// 0 0 0 0// -------// 0 1 1 1
总结

以上是内存溢出为你收集整理的go的方法全部内容,希望文章能够帮你解决go的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1292739.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-10
下一篇2022-06-10

发表评论

登录后才能评论

评论列表(0条)

    保存