码迷,mamicode.com
首页 > 其他好文 > 详细

初识Go(7)

时间:2014-12-24 16:06:11      阅读:119      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!