go语言之进阶篇指针类型和普通类型的方法集
方法集
类型的方法集是指可以被该类型的值调用的所有方法的集合。
用实例实例 value 和 pointer 调用方法(含匿名字段)不受方法集约束,编译器编总是查找全部方法,并自动转换 receiver 实参。
1、指针类型和普通类型的方法集
示例:
package main
import "fmt"
type Person struct {
	name string //名字
	sex  byte   //性别, 字符类型
	age  int    //年龄
}
//非指针
func (p Person) SetInfoValue() {
	fmt.Println("SetInfoValue")
}
//指针
func (p *Person) SetInfoPointer() {
	fmt.Println("SetInfoPointer")
}
func main() {
	//结构体变量是一个指针变量,它能够调用哪些方法,这些方法就是一个集合,简称方法集
	p := &Person{"mike", 'm', 18}
	p.SetInfoPointer() //func (p *Person) SetInfoPointer()
	//(*p).SetInfoPointer() //把(*p)转换层p后再调用,等价于上面
	//内部做的转换, 先把指针p, 转成*p后再调用
	//(*p).SetInfoValue()
	//p.SetInfoValue()
}
执行结果:
SetInfoPointer
go语言之进阶篇指针类型和普通类型的方法集的更多相关文章
- go语言之进阶篇通过switch实现类型断言
		1.通过switch实现类型断言 示例: package main import "fmt" type Student struct { name string id int } ... 
- go语言之进阶篇通过if实现类型断言
		1.通过if实现类型断言 示例: package main import "fmt" type Student struct { name string id int } func ... 
- go语言之进阶篇接口转换
		1.go语音之进阶篇 示例: package main import "fmt" type Humaner interface { //子集 sayhi() } type Pers ... 
- go语言之进阶篇方法面向过程和对象函数的区别
		1.方法 (method) 在面向对象编程中,一个对象其实也就是一个简单的值或者一个变量,在这个对象中会包含一些函数,这种带有接收者的函数,我们称为方法(method). 本质上,一个方法则是一个和特 ... 
- go语言之进阶篇接口的定义和实现以及接口的继承
		1.接口的定义和实现以及接口的继承 示例: package main import "fmt" //定义接口类型 type Humaner interface { //方法,只有声 ... 
- go语言之进阶篇方法的重写
		1.方法的重写 示例: //Person类型,实现了一个方法 func (tmp *Person) PrintInfo() { fmt.Printf("name=%s, sex=%c, ag ... 
- go语言之进阶篇方法的继承
		1.方法的继承 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, ... 
- go语言之进阶篇普通变量的方法集
		1.普通变量的方法集 示例: package main import "fmt" type Person struct { name string //名字 sex byte // ... 
- go语言之进阶篇结构体指针类型匿名字段
		1.结构体指针类型匿名字段 示例: package main import "fmt" type Person struct { name string //名字 sex byte ... 
随机推荐
- matlab .fig转化成pdf 缺失
			1. 在matlab figure里面,Edit -> Copy Figure 2. 粘贴到ppt中即可 
- java中的dao模式
			java中Dao模式 什么是DAO 1.Data Access Object(数据存取对象) 2.位于业务逻辑和持久化数据之间 3.实现对持久化数据的访问 DAO模式的作用 1隔离业务逻辑代码 ... 
- [leetcode trie]212. Word Search II
			Given a 2D board and a list of words from the dictionary, find all words in the board. Each word mus ... 
- 华为S5300系列升级固件S5300SI-V200R001C00SPC300.cc
			附带web,V200版本的第一个固件. 附件: 链接:https://pan.baidu.com/s/1QyXIIVho9AkhxUFYJYAkcw 密码:gaxm 
- Android File Hierarchy : System Structure Architecture Layout
			Most of the Android user are using their Android phone just for calls, SMS, browsing and basic apps, ... 
- 解析本内置Linux目录结构
			使用声明:1.此版本采用官方原版ISO+俄罗斯HunterTik 的Debian包制作而成2.此IMG包未进行Crack,资源来源于网络,如果你下载的是Crack版,与原作者无关,请自行分辨.“就看人 ... 
- java基础学习总结——GUI编程(一)
			一.AWT介绍 
- 具体解释Ajax技术
			Ajax 可以做什么? 现在 Google Suggest 和 Google Maps 使用了 Ajax,通过 Ajax,我们能够使得client得到丰富的应用体验及交换操作,而用户不会感觉到有网页提 ... 
- Eclipse批量替换
			情景: 我需要将项目中所有有"上样板"的字样替换为"PCR板",如果寻找单个页面肯定是很麻烦,而且替换很有可能不全,那么该怎么才能完全替换呢? 解决方法: ec ... 
- andriod 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用
			package com.example.yanlei.myapplication; import android.media.MediaMetadataRetriever; import androi ... 
