Go 方法

在结构体中,除了定义一些类的属性之外,还可以定义封装一些方法,来描述类的一些行为

如下在Person中实现了一个获取姓名的方法:

type Person struct{
	Name string
	Age int
	Addr string
	Hobby []string
}

func (this *Person)GetName()string{
	return this.Name
}

  其中this *person 和结构体的对象绑定

	var p = &Person{
		Name:"波波",
		Age:18,
		Addr:"武汉",
		Hobby:[]string{
			"Golang",
			"Game",
			"Move",
		},
	}

	fmt.Println(p.GetName())//p是该结构体的一个实例 在GetName方法中与this绑定

  注意:方法和结构体中的属性的作用域,首字母大写可以被外部调用,如果是小写,只能本包内部调用

结构体的String方法:

如果该结构体实现了自定义的String方法,那么fmt.Println自动会调用String输出

func (this *Person)String()string{
	str := fmt.Sprintf("Name=[%v], Age=[%v], Addr=[%v], Hobby=[%v]",this.Name,this.Age,this.Addr,this.Hobby)
	return str
}

  

posted @ 2020-04-02 22:38  醉深梦始  阅读(200)  评论(0)    收藏  举报