您的位置 首页 golang

理解Golang interface

理解interface三点足够:

1.方法的集合

2.任何类型的对象实现该接口全部方法,则表明该类型实现了该接口。

3.作为一种数据类型,实现了该接口的任何对象都可以给对应的接口类型变量赋值

结合例子去理解上述三点:

示例1:

import “fmt”

import “math”

type geometry interface {

area() float64

perim() float64

}

type rect struct {

width, height float64

}

func (r rect) area() float64 {

return r.width * r.height

}

func (r rect) perim() float64 {

return 2*r.width + 2*r.height

}

func measure(g geometry) {

fmt.Println(g)

fmt.Println(g.area())

fmt.Println(g.perim())

}

func main() {

r := rect{width: 3, height: 4}

measure(r)

}

示例2:

import “fmt”

type I interface {

method1()

}

type T struct{}

func (T) method1() {}

func main() {

var i I = T{}

fmt.Println(i)

}

示例3:

import ( “fmt” )

func PrintAll(vals []interface{}) {

for _, val := range vals {

fmt.Println(val)

}

}

func main() {

names := []string{“stanley”, “david”, “oscar”}

vals := make([]interface{}, len(names))

for i, v := range names {

vals[i] = v

}

PrintAll(vals)

}

更多内容请关注每日编程,每天进步一点。

文章来源:智云一二三科技

文章标题:理解Golang interface

文章地址:https://www.zhihuclub.com/86597.shtml

关于作者: 智云科技

热门文章

发表评论

您的电子邮箱地址不会被公开。

网站地图