golang

14-Go方法和接口-指趣学院

2018-09-18  本文已影响276人  极客江南

方法

func (接收者 数据类型)方法名称(形参列表)(返回值列表){
  方法体
}
package main
import "fmt"
// 1.定义一个结构体
type Person struct {
    name string
    age int
}
// 2.定义一个函数, 并将这个函数和Person结构体绑定在一起
func (p Person)say()  {
    fmt.Println("my name is", p.name, "my age is", p.age)
}
func main() {
    // 3.创建一个结构体变量
    per := Person{"lnj", 33}
    // 4.利用结构体变量调用和结构体绑定的方法
    // 调用时会自动将调用者(per)传递给方法的接收者(p)
    // 所以可以在方法内部通过p方法结构体变量的属性
    per.say()
}


接口

type 接口名称 interface{
  函数声明
}
package main
import "fmt"
// 1.定义一个接口
type usber interface {
    start()
    stop()
}
type Computer struct {
    name string
    model string
}
// 2.实现接口中的所有方法
func (cm Computer)start() {
    fmt.Println("启动电脑")
}
func (cm Computer)stop() {
    fmt.Println("关闭电脑")
}

type Phone struct {
    name string
    model string
}
// 2.实现接口中的所有方法
func (p Phone)start()  {
    fmt.Println("启动手机")
}
func (p Phone)stop()  {
    fmt.Println("关闭手机")
}

// 3.使用接口定义的方法
func working(u usber)  {
    u.start()
    u.stop()
}
func main() {
    cm := Computer{"戴尔", "F1234"}
    working(cm) // 启动电脑 关闭电脑

    p := Phone{"华为", "M10"}
    working(p)  // 启动手机 关闭手机
}
上一篇 下一篇

猜你喜欢

热点阅读