Go语言接口用法实例
2015-02-26 10:37
956 查看
接口类型是由一组方法定义的集合。
接口类型的值可以存放实现这些方法的任何值。
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语言程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- go语言接口用法实例分析
- go语言变量定义用法实例
- Go语言中的switch用法实例分析
- Go语言字典(map)用法实例分析【创建,填充,遍历,查找,修改,删除】
- go语言中if语句用法实例
- Go语言的管道Channel用法实例
- Go语言中slice的用法实例分析
- GO语言Defer用法实例分析
- Go语言的管道Channel用法实例
- Go语言中的匿名结构体用法实例
- Go语言中的range用法实例分析
- Go语言map字典用法实例分析
- Go语言排序与接口实例分析
- Go语言正则表达式用法实例小结【查找、匹配、替换等】
- Go语言MD5加密用法实例
- Go语言中Select语句用法实例
- Go语言接口定义与用法示例
- Go语言轻量级线程Goroutine用法实例
- Go语言map用法实例分析
- go语言template用法实例