golang中的方法

package main

import(
	"fmt"
)

/**
 * 方法能给用户定义类型添加新的行为。方法实际上也是函数,只是在声明时,
 * 在关键字func和方法之间增加一个参数
 *  首字母大写权限为public,所有引入者都可访问
 *  首字母小写权限为private,只限本包内访问
 */

type User struct{
	Name string
	Passwd string
	Email string
}

/**
 * notify()方法声明为user值类型。如果声明用值接收声明方法,
 * 调用时会使用这个值的一个副本来执行。
 * 
 * 如果user是指针类型值,这个方法是使用指针接收者声明。
 * 当调用者使用指针接收者声明的方法时,这个方法会共享调用方法时接收者所指向的值
 *
 */
func (u User) notify(){
	fmt.Printf("Send User Email To %s<%s>\n",u.Name,u.Email)
}

func (u *User) setName(name string){
	u.Name = name
}

func (u *User) getName() string{
	return u.Name
}

func (u *User) setPasswd(passwd string){
	u.Passwd = passwd
}

func (u *User) getPasswd() string{
	return u.Passwd
}

func (u *User) setEmail(email string){
	u.Email = email
}

func (u *User) getEmail() string {
	return u.Email
}

func main(){
	//user类型的值可以用来调用
	user := User{"Tom","abc-123","18682093512@163.com"}
	fmt.Printf("user:%+v\n",user)
	user.setName("Lucy")
	fmt.Printf("user:%+v\n",user)
	user.notify()

	//指向user类型值的指针来调用
	lisa := &User{"Lisa","abc-123","lisa@163.com"}
	lisa.notify()
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值