分情况讨论

  1. 同一个 struct 实例化出来的不同对象

    关键看 里边有没有不可比较的字段类型

  2. 不同struct 实例化出来的对象

    1. 是否可以强制转换——所有字段类型都可以转
    2. 是否包含:不可比较类型

可排序、可比较和不可比较

  1. 可排序的数据类型有三种,Integer,Floating-point,和String
  2. 可比较的数据类型除了上述三种外,还有
    1. Boolean,Complex,Pointer,Channel,Interface和Array
    2. 还有特定的 struct
  3. 不可比较的数据类型包括,Slice, Map, 和Function
    1. 不可比较的 struct

struct可以作为map的key么?

可以,也不可以

当 struct 不包含不可比较的类型,则该struct 属于 可比较类型

只要是可比较的类型,就可以作为索引,进行区分

参考

  1. https://www.jianshu.com/p/d84a2a067cef
  2. 什么是可比较的?