go 如何判断两个interface类型是否一样,并且将一个interface赋值给另一个interface

go 如何判断两个interface类型是否一样,并且将一个interface赋值给另一个interface

阅读 16.9k
3 个回答

总结一下:
1、判断类型是否一样

reflect.TypeOf(a).Kind() == reflect.TypeOf(b).Kind()

2、判断两个interface{}是否相等

reflect.DeepEqual(a, b interface{})

3、将一个interface{}赋值给另一个interface{}

reflect.ValueOf(a).Elem().Set(reflect.ValueOf(b))

reflect包的func DeepEqual(a1, a2 interface{})

最好能给出你的代码。

  1. interface类型可以用反射判断
type I interface {}

var a,b I
a = 1
b = 2

fmt.Sprintf("%#v\n", reflect.TypeOf(a).Kind() == reflect.TypeOf(b).Kind())
  1. 一个interface赋值给另一个interface你的具体问题是什么呢?
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题