golang []interface 转换的问题?

zs123123 发布于 2018/06/22 11:08
阅读 1K+
收藏 0

收藏!数据建模最全知识体系解读!>>>

package main

import "fmt"

type I interface {
       getIndex() int
}

type B struct {
       index int
}

func (self *B) getIndex() int {
       return self.index
}

func test(is []I)  {
       for _, i := range is {
              fmt.Println(i.getIndex())
       }
}

func main() {
       bs := []*B{
              &B{index:1},
              &B{index:2},
       }
       test(bs)
}

cannot use bs (type []*B) as type []I in argument to test

为什么[]*B不能转换成[]I 都实现了 getIndex方法

 

I(&B{index:1}) 是没问题的

go的继承,多态怎么不符合逻辑

加载中
返回顶部
顶部