go语音之进阶篇方法表达式
Posted nulige
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语音之进阶篇方法表达式相关的知识,希望对你有一定的参考价值。
1、方法表达式
示例:
package main import "fmt" type Person struct { name string //名字 sex byte //性别, 字符类型 age int //年龄 } func (p Person) SetInfoValue() { fmt.Printf("SetInfoValue: %p, %v ", &p, p) } func (p *Person) SetInfoPointer() { fmt.Printf("SetInfoPointer: %p, %v ", p, p) } func main() { p := Person{"mike", ‘m‘, 18} fmt.Printf("main: %p, %v ", &p, p) //方法值 f := p.SetInfoPointer //隐藏了接收者 //方法表达式 f := (*Person).SetInfoPointer f(&p) //显式把接收者传递过去 ====》 p.SetInfoPointer() f2 := (Person).SetInfoValue f2(p) //显式把接收者传递过去 ====》 p.SetInfoValue() }
执行结果:
main: 0xc00005a400, {mike 109 18} SetInfoPointer: 0xc00005a400, &{mike 109 18} SetInfoValue: 0xc00005a480, {mike 109 18}
以上是关于go语音之进阶篇方法表达式的主要内容,如果未能解决你的问题,请参考以下文章