Go-结构体

结构体

package main

import "fmt"

//类  结构体
type person struct {
	name  string
	age   int
	hobby string
}

//方法是作用于特定类型的函数
func (p person) say() {
	fmt.Println("ssssssssssssssay!")

}

//指针接收
func (p *person) ageadd() {
	p.age++

}

//值接收,P对象复制一份然后在函数中操作,不影响外面的对象P
func (p person) addage() {
	p.age++
}

//构造函数  当结构体比较大的时候,要使用结构体指针,减少程序的内存开销
func newperson(name string, age int, hobby string) *person {
	return &person{
		name:  name,
		age:   age,
		hobby: hobby,
	}
}

func main() {
	//声明结构体变量,赋值

	s := newperson("jinwei", 11, "跑步")
	s.say()
	fmt.Println(s.age)
	s.addage()
	fmt.Println(s.age)
	s.ageadd()
	fmt.Println(s.age)

}

posted @ 2020-12-10 09:35  JinweiChang  阅读(64)  评论(0编辑  收藏  举报