首页 > 其他 > 详细

初识Go(7)

时间:2014-12-24 16:03:15      阅读:152      评论:0      收藏:0      [点我收藏+]
什么是interface
简单的说,interface 是一组 method 的组合,我们通过 interface 来定义对象的一组行为。
如何实现interface?

//Human 对象实现 Sayhi 方法
func (h *Human) SayHi() {
	fmt.Printf("Hi, I am %s you can call me on %s\n", h.name, h.phone)
}
// Human 对象实现 Sing 方法
func (h *Human) Sing(lyrics string) {
	fmt.Println("La la, la la la, la la la la la...", lyrics)
}
//Human 对象实现 Guzzle 方法
func (h *Human) Guzzle(beerStein string) int{
	return 1
}
type Men interface {
	SayHi()
	Sing(lyrics string)
	Guzzle(beerStein string) int
}
  
空interface(interface{})
不包含任何的 method,正因为如此,所有的类型都实现了空
interface。 空 interface 对于描述起不到任何的作用(因为它不包含任何的 method),但是空
interface 在我们需要存储任意类型的数值的时候相当有用,因为它可以存储任意类型的数
值。它有点类似于 C 语言的 void*类型。
var a interface{}
var i int = 5
s := "Hello world"
// a 可以存储任意类型的数值
a = i
a = s
一个函数把 interface{}作为参数,那么他可以接受任意类型的值作为参数,如果一个函数
返回 interface{},那么也就可以返回任意类型的值。是不是很有用啊!

  

初识Go(7)

原文:http://www.cnblogs.com/huangxiaohen/p/4182531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!