关于x,y = y,x的实现,以及method receiver的一些问题

agolangf · · 3333 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

不知道有没有深入研究过go的大侠,可以帮忙解惑一下2个问题: 1、类似python的变量交换的实现方式内部是怎样实现的(x,y = y,x).我觉得作为命令式语言,不借助中间变量来完成2个变量的交换是不太可能的 2、当定义struct的method的时候,receiver可以采用指针,也可以直接使用struct类型,我想问的是:对下面的代码: func (p Person) Name() string { //blabla } var p1 = new(Person) p1.Name() //这里面p是不是对p1进行了一次取值操作? var p2 = Person{...略} p2.Name() //这里面p是不是对p1进行了一次拷贝操作? 对于method receiver的类型到底用struct还是struct *,有没有什么最佳实践指导?谢谢

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3333 次点击  
加入收藏 微博
5 回复  |  直到 2014-10-20 10:36:46
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传