go的指针与函数

        值类型的类的方法,还是指针型的类的方法,实际上,只需要记住,区别就在于java的setter和getter可以改变变量的参数,而go中需要用指针类型的方法才能改变参数。

技术细节有:

1.所有的方法调用其实都是将对象作为方法的第一个参数进行传递的。例如a.func(),其实过程是func(a),只是一般隐去这个过程而已。这里a被称为方法的接收者。

2.实参传给形参过程中,系统会自动转换格式,这也就是如果实参是指针,形参是值,那么会获取值传递给形参;如果实参是值,形参是指针,那么会获取值得指针给形参。

3.方法的接受者,无论是值类型还是指针类型,接收者都可以调用它们。


另外需要注意:

1.赋值给接口的话是会报错的,因为赋值产生复制值,然后后面操作的都是复制值,这就失去意义了。所以赋值一般使用指针进行赋值,这点需要特别注意!要记住这点的关键在于赋值能否影响到值对象本身。ps:其实这种过程是可以的,只是完全没有意义,所以报错。

2.如果使用嵌套类型,那么操作的是嵌套的对象,所以传进去嵌套里面的值其实最后并没有变化。



可以参考文章: http://blog.csdn.net/u013790019/article/details/45397287

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值