码迷,mamicode.com
首页 > 其他好文 > 详细

4-2 go封装性

时间:2019-06-24 12:09:01      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:要求   必须   对象   isl   bool   nbsp   import   struct   指定   

package main

import "fmt"

//定义结构体
type Persion struct {
    //定于结构体属性
    name  string
    age   int
    sex   bool
    hobby []string
}

/*
封装结构体的方法
- 无论方法的主语定于为止类型还是指针类型,对象值和对象指针都能够正常访问
-通常会将主语定义为指针累
*/
func (p Persion) Eat() {
    fmt.Printf("%s爱饕餮\n", p.name)
}
func (p Persion) Drink() {
    fmt.Printf("%s爱喝酒\n", p.name)
}

func (p Persion) Love() {
    fmt.Printf("%s是有感情的\n", p.name)
}

func MakeHimlove(p Persion)  {
    p.Love()
}
func MakeHisLove(p *Persion)  {
    p.Love()
}

func main01() {
    //创建空白的Persion 对象(object)/实例(instance)
    rangge := Persion{}

    //设置其属性
    rangge.name = "让哥"

    //访问其方法
    rangge.Eat()
    rangge.Drink()
    rangge.Love()

}

func main012() {
    //创建对象是给指定属性赋值,可以不必全部赋值
    //rangge := Persion{name: "西门阿让", sex: true, age: 9}

    //创建对象时按顺序给所有属性赋值
    rangge := Persion{"西门阿让", 8, true, []string{"撸代码"}}
    rangge.Eat()
}
func main() {
    rangge := Persion{"西门阿让", 8, true, []string{"撸代码"}}

    //要求传递值就必须传递值
    MakeHimlove(rangge)

    //要求传递指针就必须传递指针/地址/引用
    MakeHisLove(&rangge)

    //值传递传递的是副本,引用传递传的才是真身

}

 

4-2 go封装性

标签:要求   必须   对象   isl   bool   nbsp   import   struct   指定   

原文地址:https://www.cnblogs.com/paad/p/11076202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!