概览
- 布尔类型:bool
- 整型:int8、byte、int16、int、uint、uintptr 等
- 浮点类型:float32、float64
- 复数类型:complex64、complex128
- 字符串:string
- 字符类型:rune
- 错误类型:error
复合类型
- 指针(pointer)
- 数组(array)
- 切片(slice)
- 字典(map)
- 通道(chan)
- 结构体(struct)
- 接口(interface)
复合数据类型
数组
| var a [8]byte |
| var b [3][3]int |
| var c [3][3][3]float64 |
| var d = [3]int{1, 2, 3} |
| var e = new([3]string) |
| a := [5]int{1,2,3,4,5} |
| a := [...]int{1, 2, 3} |
| a := [5]int{1, 2, 3} |
| a := [5]int{1: 3, 3: 7} |
数组长度在声明后就不可更改
数组的长度在定义之后无法修改,数组长度是数组类型本身的一部分,是数组的一个内置常量,因此我们无法在数组上做动态的元素增删操作。
数组元素的访问和设置
| arr := [5]int{1,2,3,4,5} |
| a1, a2 := arr[0], arr[len(arr) - 1] |
| arr[0] = 10 |
切片
| var slice []string = []string{"a", "b", "c"} |
| |
| months := [...]string{"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} |
| q2 := months[3:6] |
| summer := months[5:8] |
| all := months[:] |
| firsthalf := months[:6] |
| secondhalf := months[6:] |
切片底层引用了一个数组,由三个部分构成 —— 指针、长度和容量,指针指向数组起始下标,长度对应切片中元素的个数,容量则是切片起始位置到底层数组结尾的位置,切片长度不能超过容量
| |
| mySlice1 := make([]int, 5, 10) |
| mySlice3 := []int{1, 2, 3, 4, 5} |
字典map
| |
| var testMap map[string]int |
| testMap := map[string]int{ |
| "one": 1, |
| "two": 2, |
| "three": 3, |
| } |
| |
| var testMap = make(map[string]int, 100) |
| |
| testMap["one"] = 1 |
| testMap["two"] = 2 |
指针类型
变量的本质对一块内存空间的命名,我们可以通过引用变量名来使用这块内存空间存储的值,而指针则是用来指向这些变量值所在内存地址的值。
| var ptr *int |
| a := 100 |
| ptr = &a |
| fmt.Println(ptr) |
| fmt.Println(*ptr) |
| |
| b := 200 |
| ptr1 := &b |
| fmt.Println(ptr1) |
| *ptr1 = 100 |
| fmt.Println(*ptr1) |
| fmt.Println(b) |
指针类型转化
| i := 10 |
| var p *int = &i |
| var fp *float32 = (*float32)(unsafe.Pointer(p)) |
| *fp = *fp * 10 |
| fmt.Println(i) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!