golang中自定義一些型別和對應型別的指標方法
阿新 • • 發佈:2021-10-16
package main import "fmt" // 專案開發中可以為type宣告的型別編寫一些方法,從而實現物件.方法的操作 // 宣告型別 type myInt int // int有的功能myInt都有 // 為MyInt型別自定義一個指標方法 // 此處可以使指標,可以是型別 *myInt myInt // 如果是型別會拷貝一份,如果是指標不拷貝 func (i *myInt) doSomething(a, b int) int { return a + b + int(*i) } // 結構體也是基於type宣告的型別,所以也可以使用此方式為結構體定義一些方法 type person struct { name string age int blog string } // 為person結構體型別自定義一個指標方法 // 注意:此處如果不是指標型別的話,在執行方式時,結構體物件就會被重複拷貝一份 // 如果是指標型別,就不會拷貝,節省記憶體空間 func (p *person) doSomething(a, b int) int { return a + b + p.age } func main() { var a myInt = 11 ret := a.doSomething(1, 3) fmt.Println(ret) p := person{"mayanan", 28, "www.mayanan.cn"} age := p.doSomething(0, 0) fmt.Println(age) }