douchun1900 2018-07-02 19:25
浏览 50

这是接口列表的参数{} [重复]

This question already has an answer here:

I'm trying to create a function that prints out the len of a list passed into it, regardless of the type of the list. My naive way of doing this was:

func printLength(lis []interface{}) {
    fmt.Printf("Length: %d", len(lis))
}

However, when trying to use it via

func main() {
    strs := []string{"Hello,", "World!"}
    printLength(strs)
}

It complains saying

cannot use strs (type []string) as type []interface {} in argument to printLength

But, a string can be used as a interface{}, so why can't a []string be used as a []interface{}?

</div>
  • 写回答

1条回答 默认 最新

  • drhgzx4727 2018-07-02 19:56
    关注

    You can use reflect package - playground

    import (
        "fmt"
        "reflect"
    )
    func printLength(lis interface{}) {
        fmt.Printf("Length: %d", reflect.ValueOf(lis).Len())
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集