2023-08-17 13:27:09
Go语言中的派生类型是通过现有类型创建的新类型,继承原始类型的特性并可能扩展功能。以下是主要的派生类型及其特点:
1. 指针类型(Pointer)动态访问和修改目标变量的值。
通过 new() 函数或直接取地址符 & 初始化。
长度是类型的一部分(如 [3]int 和 [5]int 是不同类型)。
值类型,赋值或传参时会复制整个数组。
长度可动态调整(通过 append)。
引用类型,传递切片不会复制底层数据。
由指针、长度和容量组成。
可组合多个字段,支持嵌套结构体。
用于定义复杂数据类型(如对象)。
类型安全的多态,编译时检查实现。
空接口 interface{} 可接受任意类型(Go 1.18+ 推荐用 any)。
函数类型(Function):函数也是一种类型,可赋值给变量或作为参数传递。
type Greeter func(name string) string通道类型(Channel):用于协程间通信,通过 make(chan T) 创建。
ch := make(chan int, 10) // 缓冲通道映射类型(Map):键值对集合,通过 map[K]V 定义。
m := make(map[string]int)m["key"] = 42Go的派生类型通过组合或扩展基础类型(如 int、string)提供更复杂的功能,支持动态行为(切片、接口)、数据组织(结构体)和内存操作(指针)。这些类型共同构成了Go语言高效且灵活的类型系统。