我很难理解为什么无法构建此代码。
package main
import (
"fmt"
)
type Foo interface {
Cose() string
}
type Bar struct {
cose string
}
func (b *Bar) Cose() string {
return b.cose
}
func main() {
bar := Bar{
cose: "ciaone",
}
ii, ok := bar.(Foo)
if !ok {
panic("Maronn")
}
fmt.Println(" cose : " + ii.Cose())
}
最佳答案
接口(interface)是相反的操作-将接口(interface)转换为特定类型。喜欢:
package main
import (
"fmt"
)
type Foo interface {
Cose() string
}
type Bar struct {
cose string
}
func (b *Bar) Cose() string {
return b.cose
}
func main() {
bar := Foo(&Bar{
cose: "ciaone",
})
ii, ok := bar.(*Bar)
if !ok {
panic("Maronn")
}
fmt.Println(" cose : " + ii.Cose())
}
演示:https://play.golang.org/p/ba7fnG9Rjn
关于go - ./main.go :23:15: invalid type assertion: bar.(Foo)(非接口(interface)类型,位于左侧的栏),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47475756/