方法与函数大部分功能类似.
但方法都是和结构体,接口一起使用。方法需要的参数和调用方法不同
例1:
type A struct {
num int
}
func (a A)test() {
fmt.Println(a.Num)
}
var a = A{1}
a.test()
每个方法都为一个特定的数据类型服务。
接口是一种抽象类型,它并没有暴露所含数据的布局或者内部结构。
它仅仅提供一些方法。
如果一个具体类型要实现一个接口,那么必须实现接口类型定义的所有方法。
示例:
type person interface {
getName() string
getAge() int
}
type tom struct {
name string
age int
}
func (t *tom)getName() string {
return t.name
}
func (t *tom)getAge() int {
return t.age
}
t := tom{"Tom", 18}
fmt.Println( (&t).getName() )
fmt.Println( (&t).getAge() )
一个空接口可以接收任意数据类型的数据。