golang中所谓的”方法提升“,求解答。。。。

midnight_vivian · 2014-07-21 11:32:13 · 3357 次点击

你的示例我能理解,看来是我对方法集这个概念的定位有误,这下明白了,十分感谢!

#2
更多评论
polaris
社区,需要你我一同完善!

我给你一个示例:

package main

import (
    "fmt"
)

type T struct{}

func (this *T) MyApi() {
    fmt.Println("I am T method")
}

type S struct {
    T
}

type MyInterface interface {
    MyApi()
}

func main() {
    var s S
    // Test(s) // 编译通不过
    s.MyApi() // 直接调用没问题
}

func Test(inter MyInterface) {
    inter.MyApi()
}

也就是,方法集是针对接口实现这个层面来说的。

#1