简明笔记:指针传递和值传递

faceNL · 2019-05-04 14:20:17 · 1373 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2019-05-04 14:20:17 的文章,其中的信息可能已经有所发展或是发生改变。

简明笔记:指针传递和值传递

值传递,拷贝一份值接收者的副本。指针传递,则直接指向值接收者。

一个超级简单的列子:

package main

import (

   "fmt"
)
type myself struct {    
   name string
}
func (u myself) self_change_name(name string){    // 注意: 这里是拷贝一份 myself
   u.name = name
   fmt.Println(u.name)
}
func (u *myself) police_station_change_name(name string){  //指向myself
   u.name = name
}
func main() {
   ms := myself{"Potato"}  // 初始化操作,原名字。
   ms.self_change_name("HandSome")  //你想自己改成HandSome 
   fmt.Println(ms.name)   //但是你的户口本却是Potato
   ms.police_station_change_name("Iron Man")  //没办法,你自能自己拿着户口本去派出所改
   fmt.Println(ms.name)  
}

输出结果:
HandSome
Potato
Iron Man

到了后面指针用的很频繁,这边自己先做个笔记先,哈哈哈哈哈!!!


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

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

1373 次点击  ∙  1 赞  
加入收藏 微博
1 回复  |  直到 2019-05-04 14:42:47
faceNL
faceNL · #1 · 6年之前

没人评论么,23333~

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