博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go语言之进阶篇值语义和引用语义
阅读量:5052 次
发布时间:2019-06-12

本文共 810 字,大约阅读时间需要 2 分钟。

1、值语义和引用语义

示例:

package mainimport "fmt"type Person struct {	name string //名字	sex  byte   //性别, 字符类型	age  int    //年龄}//修改成员变量的值//接收者为普通变量,非指针,值语义,一份拷贝func (p Person) SetInfoValue(n string, s byte, a int) {	p.name = n	p.sex = s	p.age = a	fmt.Println("p = ", p)	fmt.Printf("SetInfoValue &p = %p\n", &p)}//接收者为指针变量,引用传递func (p *Person) SetInfoPointer(n string, s byte, a int) {	p.name = n	p.sex = s	p.age = a	fmt.Printf("SetInfoPointer p = %p\n", p)}func main() {	s1 := Person{"go", 'm', 22}	fmt.Printf("&s1 = %p\n", &s1) //打印地址	//值语义	//	s1.SetInfoValue("mike", 'm', 18)	//	fmt.Println("s1 = ", s1) //打印内容	//引用语义	(&s1).SetInfoPointer("mike", 'm', 18)	fmt.Println("s1 = ", s1) //打印内容}

#执行结果:

&s1 = 0xc00005a400SetInfoPointer p = 0xc00005a400s1 =  {mike 109 18}

  

转载于:https://www.cnblogs.com/nulige/p/10249956.html

你可能感兴趣的文章
shell判断网络主机存活
查看>>
根据时间戳,增量同步数据的解决办法
查看>>
03 SeekBar 音频播放拖拽进度条
查看>>
自定义view实现阻尼效果的加载动画
查看>>
log4net介绍及使用
查看>>
CMS:文章管理之视图(3)
查看>>
清北学堂的小技巧和小收获
查看>>
模型压缩方向一个很牛的paper
查看>>
Android--AsyncTask异步加载详解
查看>>
YARN学习总结
查看>>
C#基础温习(2):温习控制台程序(二)
查看>>
一些文章
查看>>
注解@ResponseBody的作用
查看>>
java main函数不执行?
查看>>
iOS 更好用的打Log方式-显示文件名、行数
查看>>
从MS SQL删除大数据说开去
查看>>
NOVO SOP (SOP简介及历史)
查看>>
获取JNDI数据源
查看>>
java听课笔记(十)
查看>>
flash与字符串:替换表情
查看>>