go十一:面向对象之封装

在GO中,封装叫做方法

1.方法的定义和使用

package main
import "fmt"
//1.定义函数类型
//2.为已存在的数据类型起别名
type Int int

//方法: func (方法接收者)方法名(参数列表) 返回值类型
func (a Int)add(b Int) Int {
    return a + b
}
func main() {
    //根据数据类型绑定方法
    var a Int = 10
    value := a.add(20)
    fmt.Println(value)  //30
}

 

使用结构体定义函数类型及起别名  

package main

import "fmt"
//定义函数类型、并起别名
type st struct {
    name string
    age int
}
//定义第一个方法
func (s st)printInfo()  {
    fmt.Println(s.name, s.age)
}
//定义第二个方法
func (s st)editInfo(name string, age int) {
    s.name = name
    s.age = age
    s.printInfo()  //新名字 23
}
//定义第三个方法---指针
func (s *st)edit(name string, age int) {
    s.name = name
    s.age = age
}
func main() {
    var s st=st{"sdf", 23}
    s.printInfo()  //sdf 23
    s.editInfo("新名字", 23)
    s.printInfo()  //sdf 23 ---结构体是值传递
    
    (&s).edit("新名字", 23)
    s.printInfo()  //新名字 23
}

 66-72

posted on 2018-03-30 21:35  myworldworld  阅读(64)  评论(0)    收藏  举报

导航