go的方法
发布时间:2020-12-16 18:59:35 所属栏目:大数据 来源:网络整理
导读:receiver为值的方法,编译器实现了对应的receiver为指针的方法,不是简单的取值后调用的包装,而是真正操作该字段 receiver为指针的方法,则没有实现对应的receiver为值的方法,值可以调用只是语法糖(取指针后调用) 编译器对接口则没有语法糖提供 method-va
receiver为值的方法,编译器实现了对应的receiver为指针的方法,不是简单的取值后调用的包装,而是真正操作该字段
receiver为指针的方法,则没有实现对应的receiver为值的方法,值可以调用只是语法糖(取指针后调用) 编译器对接口则没有语法糖提供 method-value绑定的receiver在绑定时就确定了,乃是一个拷贝,而非外部变量 method-expression则与普通的函数无异(注意receiver类型的不同) package main type INT int func (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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |