采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好,通知上传合并函数里有如下代码:
k := string(data[i].([]byte))
请问不可以直接断言为string吗?我看其他地方也有类似用法。
同学你好, 欢迎举个例子来拍砖哈.
断言需要结合实际来做类型检查, 这里的data[i]不是从string转换而来的{}interface类型, 直接断言为string应该是会失败的. 我们可以这样测试一下:
fmt.Println(reflect.TypeOf(data[i])) k := data[i].(string)
输出结果为:
[]uint8 panic: interface conversion: interface {} is []uint8, not string
如果不想panic, 可以这样使用断言:
k, ok := data[i].(string) if !ok { // do something... }
好的哈!非常感谢!
登录后可查看更多问答,登录/注册
紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员
1.3k 23
2.0k 13
1.6k 13
1.1k 13
1.2k 13