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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM