下面讨论的主题,如可比性将出现在其他场合,如 maps。可赋值不是唯一要求。通道类型值相等,如果他们确实一样或值都是 nil:接口类型是可比较。Go 编译器不允许这样做,并且编译比较 maps 的程序会引起一个错误 map can only be compared to nil. 。展示的错误告诉我们至少可以用 maps,slices 或 functions 和 nil 比较。目前为止,我们知道接口值是可比较的,但 maps 是不可以的。如果接口值的动态类型是相同的,但是不能比较,它会引起一个运行时错误:这些操作符只能应用在三种类型:整数,浮点数和字符串类型。值得注意的是字符串是按字典顺序排列的。
暂无评论