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

  

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com