Golang 方法 method

方法是某种特定类型的函数

方法能给用户的类型添加新的行为。
实际上也是函数,只是在声明时,在关键字func和方法名之间增加了一个参数


//展示如何声明并使用方法

package main

import "fmt"


//user 在程序里定义了一个用户类型
type user struct {
   name  string
   email string
}


//notify 使用值接收者实现了一个方法
// Go语言里有两种类型的接收者,值接收者和指针接收者,调用时,会使用这个值的副本来执行
//如果使用值接收者
func (u user) notify() {
   fmt.Printf("Sending User Email to %s<%s>\n",
   	u.name,
   	u.email)

}


//使用指针接收者实现了一个方法
func (u *user) changeEmail(email string) {
   u.email = email

}

func main() {
   //user 类型的值可以用来调用
   //使用值接收者声明的方法
   bill := user{"Bill", "[email protected]"}
   bill.notify()


   //指向user类型的指针也可以用来调用
   //使用值接收者声明的方法
   lisa := &user{"lisa", "[email protected]"}
   lisa.notify()

   //user 类型的值可以用来调用
   //使用值接收者声明的方法
   bill.changeEmail("[email protected]")
   bill.notify()

   //指向user类型的指针可以用来调用
   //使用指针接收者声明的方法
   lisa.changeEmail("[email protected]")
   lisa.notify()
}

GO 语言里有两种类型的接收者:值接收者和指针接收者

猜你喜欢

转载自blog.csdn.net/weixin_40161254/article/details/88397417