Go语言编程基础:方法

77 阅读1分钟
方法与函数大部分功能类似.
但方法都是和结构体,接口一起使用。方法需要的参数和调用方法不同
例1:
    type A struct {
        num int
    }
    
    func (a A)test() {
        fmt.Println(a.Num)
    }
    var a = A{1}
    a.test()//调用方法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() )
    
一个空接口可以接收任意数据类型的数据。