应用 go 语言表达接口方式能够实现主要参数多态性化,使函数公式或方法能接受完成同样接口不一样类型参数,如示例中测算不同形状总面积的函数 calculatearea。实际应用中,接口方式能增强函数公式协调能力,完成多态性行为表现建立可扩展性架构,如分布式锁框架中根据不同存放后端的接口标准。 zvvq.cn
应用 Go 语言表达接口方式完成参数多态性化 内容来自samhan666
接口方式是一种强悍的专用工具,能让程序猿界定一组方式,而且一切种类只需完成了这个方法,都可以被视为该接口方式。这种机制使我们能够将不同种类的传递数据给某一函数公式或方法,但是该函数公式或方法只能启用这种种类完成的一致方式。 zvvq好,好zvvq
编码实例 copyright zvvq
下列代码展示了怎么使用接口方式来达到在函数公式或方法中传送不同种类的主要参数: 内容来自zvvq,别采集哟
packagemain
import"fmt"
//界定接口方式
zvvq
type Shape interface{ 本文来自zvvq
Area()float64 zvvq.cn
} copyright zvvq
//界定方形种类
typeRectanglestruct{ zvvq.cn
Width,Heightfloat64 内容来自samhan
}
//完成 Shape 接口中的方法 zvvq.cn
func(rRectangle)Area()float64{
zvvq.cn
returnr.Widthr.Height
}
//界定环形种类 copyright zvvq
typeCirclestruct{
Radiusfloat64 内容来自samhan
}
//完成 Shape 接口中的方法
func(cCircle)Area()float64{
zvvq.cn
returnmath.Pic.Radiusc.Radius 内容来自zvvq,别采集哟
}
//测算不同形状的总面积
funcCalculateArea(sShape)float64{ 内容来自zvvq
returns.Area()
} zvvq
funcmain(){ 内容来自zvvq
//创建一个方形和一个圆形
内容来自samhan666
r:=Rectangle{Width:5,Height:10} 本文来自zvvq
c:=Circle{Radius:5} 内容来自samhan
//测算方形和圆形总面积
fmt.Println("矩形的面积:",CalculateArea(r)) copyright zvvq
fmt.Println("圆形总面积:",CalculateArea(c)) zvvq
}
内容来自samhan666
实战案例 内容来自zvvq
实际应用中,接口方式可用作完成下列作用:
容许传到不同种类的主要参数,进而提升函数公式或方法的灵活性。依据不同的类型启用特定方式,完成多态性个人行为。建立可扩展性框架,容许轻轻松松添加新的种类和完成。比如,在分布式锁框架中,我们能定义一个存放插口来描述不同类型的存放后面(如关系数据库、NoSQL 数据库系统等),随后使用这个插口去执行 CRUD(建立、载入、升级、删掉)实际操作。那样,我们能根据不同的存放后面编写程序,而不需要变更架构自身。 zvvq
之上就是采用Golang接口方式完成参数多态性化的详细内容,大量欢迎关注其他类似文章!