隐式 接口
接口类型是由一组方法定义的集合。
接口类型的值可以存放实现这些方法的任何值。
类型通过实现那些方法来实现接口。 没有显式声明的必要;所以也就没有关键字“implements“。
隐式接口解藕了实现接口的包和定义接口的包:互不依赖。
package main
import (
"fmt"
"math"
)
//定义接口
type calc interface{
abs() float64
}
//定义结构vertex
type vertex struct {
x, y float64
}
// vertex实现abs方法 接受者是指针 v *vertex
func (v *vertex) abs() float64 {
return math.sqrt(v.x*v.x + v.y*v.y)
}
//定义结构person
type person struct{
age int
}
// person实现abs方法 接受者是 值类型person
func (p person) abs() float64{
return float64(p.age)
}
func main() {
//v是指针
v := &vertex{3, 4}
//p是值类型
p:=person{age:23}
fmt.println( v.abs(),p.abs())
}
保持进步
希望每个人都能找到自己喜欢的方式生活、工作。
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
-
-
Go打包二进制文件的实现
背景众所周知,go语言可打包成目标平台二进制文件是其一大优势,如此go项目在服务器不需要配置go环境和依赖就可跑起来。操作需求:打包部署到centos7笔者打包...
[阅读全文]
-
-
-
-
golang语言编码规范的实现
本规范旨在为日常go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性。本规范将从命名规范,注释规范,代码风格和 ...
[阅读全文]
-
-
-
网友评论