Go 中的类型和比较
Go 中的类型和比较 go 是一个强类型的语言,map 中要求键(key)必须是可比较的(comparable),什么是可比较呢?就是能用操作符 == 的类型, 我们知道必须两个类型一致才能比较,否则编译器会报 invalid operation: a == c (mismatched types...) 的错误,准确的说基本类型(int8,float32,string)符合上面的原则,但 golang 中又有复合类型就不一样,先来看 go 中的类型 1. 基本类型 (Basic Types) 数字类型: int8, uint8 (byte), int16, uint16, int32 (rune), uint32, int64, uint64, int, uint, uintptr. float32, float64. complex64, complex128. 布尔类型: bool 字符串类型: string 2. 复合类型 (Basic Types) 结构体(struct)类型 函数:go 中函数是一等公民,也是一种类型 数组(array):包括长度和类型,不同长度的相同类型不属于同一类型 切片(slice):切片有动态的长度和容量是一种引用类型 字典(map):底层是哈希表也是一种引用类型 指针类型(pointer) 管道(channel) 接口类型(interface) 类型重定义(Type Definitions)和类型别名(Type Alias Declarations) 讲完了类型再来看看用户可以创建自己的类型(类型重定义)和创建别名,先看类型定义 // Define a solo new type. // type NewTypeName SourceType type MyInt int type Num int 上面定义了 MyInt , Num 两个类型,虽然他们的源类型都是 int 但他们是不同的类型,所以他们是不可以比较的,但可以通过转换成相同类型的再比较如...