go version go1.11 windows/amd64

 

本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,介绍Go语言的 接口类型(Interface types)

 

接口类型应该是从软件设计上考虑才接入的类型,它本身不实现任何功能,但会 声明 一些功能。

在Go语言中,任何 实现 了接口类型中 声明 的功能的类型,都可以成为 实现了 某接口

比如,声明一个 汽车接口,里面包含若干方法,任何实现了这个 汽车接口 的的类型 都可以被称为 汽车,不过,有些是 汽油柴油动力汽车,有些是电动汽车。

而且,一个类型可以实现多个接口,只要这个类型的 方法集 包含 某个 接口类型 所声明的文件,就可以称 这个类型实现了这个接口。

 

上面是阅读了官文后自己对 接口类型 和 其它类型、方法集 等概念的理解,下面是补充,涵盖怎么使用接口类型的的信息。

 

接口类型 中声明的方法 即使 接口类型的 方法集——不只是普通类型有方法集,接口类型也有。

可以用接口类型声明变量,未初始化的接口类型变量为 nil。

接口类型变量 可以存储 任何方法集涵盖了接口类型方法集 的类型 的值。

接口类型变量怎么初始化呢?new函数!下面是来自RUNOOB.COM的示例代码:

package main

import (
    "fmt"
)

type Phone interface {
    call()
}

type NokiaPhone struct {
}

func (nokiaPhone NokiaPhone) call() {
    fmt.Println("I am Nokia, I can call you!")
}

type IPhone struct {
}

func (iPhone IPhone) call() {
    fmt.Println("I am iPhone, I can call you!")
}

func main() {
    var phone Phone

    phone = new(NokiaPhone)
    phone.call()

    phone = new(IPhone)
    phone.call()

}
runoob_iface_eg.go

相关文章:

  • 2021-06-08
  • 2022-01-27
  • 2021-09-09
  • 2022-12-23
  • 2021-06-06
  • 2021-07-11
  • 2022-12-23
  • 2021-10-28
猜你喜欢
  • 2022-01-26
  • 2021-12-30
  • 2021-12-18
  • 2022-03-07
  • 2021-11-08
  • 2021-06-15
  • 2023-03-29
相关资源
相似解决方案