当我运行下面的代码片段时,它会引发错误


a.test undefined (type interface {} 是没有方法的接口)


看来类型切换没有生效。


package main


import (

    "fmt"

)


type A struct {

    a int

}


func(this *A) test(){

    fmt.Println(this)

}


type B struct {

    A

}


func main() {

    var foo interface{}

    foo = A{}

    switch a := foo.(type){

        case B, A:

            a.test()

    }

}

如果我将其更改为


    switch a := foo.(type){

        case A:

            a.test()

    }

现在好了。