Go语言接口用法实例
程序员文章站
2022-08-29 23:40:49
本文实例讲述了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语言程序设计有所帮助。