Go语言接口用法 Go语言接口用法实例
不是JS 人气:0想了解Go语言接口用法实例的相关内容吗,不是JS在本文为您仔细讲解Go语言接口用法的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Go语言,接口,用法,下面大家一起来学习吧。
本文实例讲述了Go语言接口用法。分享给大家供大家参考。具体分析如下:
接口类型是由一组方法定义的集合。
接口类型的值可以存放实现这些方法的任何值。
复制代码 代码如下:
package main
import (
"fmt"
"math"
)
type Abser interface {
Abs() float64
}
func main() {
var a Abser
f := MyFloat(-math.Sqrt2)
v := Vertex{3, 4}
a = f // a MyFloat implements Abser
a = &v // a *Vertex implements Abser
a = v // a Vertex, does NOT
// implement Abser
fmt.Println(a.Abs())
}
type MyFloat float64
func (f MyFloat) Abs() float64 {
if f < 0 {
return float64(-f)
}
return float64(f)
}
type Vertex struct {
X, Y float64
}
func (v *Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}
import (
"fmt"
"math"
)
type Abser interface {
Abs() float64
}
func main() {
var a Abser
f := MyFloat(-math.Sqrt2)
v := Vertex{3, 4}
a = f // a MyFloat implements Abser
a = &v // a *Vertex implements Abser
a = v // a Vertex, does NOT
// implement Abser
fmt.Println(a.Abs())
}
type MyFloat float64
func (f MyFloat) Abs() float64 {
if f < 0 {
return float64(-f)
}
return float64(f)
}
type Vertex struct {
X, Y float64
}
func (v *Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}
希望本文所述对大家的Go语言程序设计有所帮助。
加载全部内容