欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

go 接口

程序员文章站 2022-05-18 21:17:59
隐式 接口 接口类型是由一组方法定义的集合。 接口类型的值可以存放实现这些方法的任何值。 类型通过实现那些方法来实现接口。 没有显式声明的必要;所以也就没有关键字“implements“。 隐式接口解藕了实现接口的包和定义接口的包:互不依赖。 package main import ( "fmt" ......

 

隐式 接口

接口类型是由一组方法定义的集合。

接口类型的值可以存放实现这些方法的任何值。 

类型通过实现那些方法来实现接口。 没有显式声明的必要;所以也就没有关键字“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())
}

保持进步
希望每个人都能找到自己喜欢的方式生活、工作。