首页 > 其他 > 详细

go接口

时间:2020-12-05 15:25:26      阅读:32      评论:0      收藏:0      [点我收藏+]

go接口

接口定义了一种类型需要实现的方法(method),由于接口中不存在成员变量,也不存在方法实现,所以可以解决多继承中的冲突(即使方法名重复了也没啥,不会出现歧义)。
go中实现接口的方式很巧妙,不是显式地声明实现某个接口,比如java中的implements,而是隐式地检查一个类型是否实现了特定接口的方法,比如:

package main

import (
	"fmt"
	"math"
)

type Shape interface {
	Area() float64
}

type Circle struct {
	radius float64
}

func (c Circle) Area() float64 {
	return math.Pi * c.radius * c.radius
}

func main() {
	var s Shape = Circle{1}
	fmt.Println(s.Area())
}

类型断言

类型断言有两种形式:

  • res := x.(T)
  • res, ok := x.(T)

其中x必须是接口(空接口亦可),T可以是接口或具体类型, ok表示断言是否成功,若成功则res的值为x的值,类型为x的类型,否则panic。

go接口

原文:https://www.cnblogs.com/HachikoT/p/14089068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!