首页
下载
插件
案例
社区
文档
视频
资讯
关于
VEITOOL
联系方式
合作代理
插件协议
用户协议
登录
|
注册
全部
后端程序
前端模板
插件二开
综合求助
谈天说地
使用分享
安卓开发
Golang 数组、切片、map 整理笔记
发布:2024-02-27 16:18
分类:后端程序
评论:2
浏览:195
Go语言中数组、切片、map都是常用的数据结构,各有特点选择使用哪种数据结构需要根据具体的需求来决定。 数组:长度固定,元素类型相同,可以使用for循环或for-range循环遍历。 切片:长度可变,元素类型相同,可以使用for循环或for-range循环遍历。 map:键值对映射,可以使用for-range循环遍历。 ``` go //数组的定义 数组的长度是固定的,在声明时必须指定 var arr1 [5]int arr1[1] = 11 fmt.Println("arr1=", arr1) var arr2 [5]int = [5]int{11,22,33,44,55} fmt.Println("arr2=", arr2) var arr3 = [...]string{"aa","bb","cc","dd","ee"} fmt.Println("arr3=", arr3) arr4 := [3]string{"aa","bb","cc"} fmt.Println("arr4=", arr4) arr5 := [...]int{1,2,3,4} fmt.Println("arr5=", arr5) arr6 := make([]int,6) fmt.Printf("arr6= %v size= %v \n", arr6, len(arr6)) var arr7 [2][3]int //二维数组 fmt.Println("slice", arr7) fmt.Println("使用for循环遍历数组") for i := 0; i < len(arr5); i++ { fmt.Println(arr5[i]) } fmt.Println("使用for-range循环遍历数组") for _, v := range arr4 { fmt.Println(v) } //定义切片 var slice1 []int //声明一个int类型切片 fmt.Println(slice1) slice2 := make([]int, 5, 10) // 声明一个长度为5,容量为10的int类型切片 fmt.Printf("slice2= %v 长度= %v 容量= %v\n", slice2, len(slice2), cap(slice2)) Sarr1 := [...]int{1, 2, 3, 4, 5} //从数组创建切片 slice3 := Sarr1[1:3] //[1:3]表示从下标为1的元素一直取到3,但不包含3 [:]表示全部 [2:]表示从下标为2到最后 fmt.Printf("slice3= %v 长度= %v 容量= %v\n", slice3, len(slice3), cap(slice3)) slice4 := []string{"a","b","c"} fmt.Printf("slice4= %v 长度= %v 容量= %v\n", slice4, len(slice4), cap(slice4)) slice4 = append(slice4,"d","e") //切片动态追加 fmt.Printf("slice4新= %v 长度= %v 容量= %v\n", slice4, len(slice4), cap(slice4)) var slice5 []string = []string{"1","2","3"} copy(slice5,slice4) //切片拷贝 【俩变量数据空间是独立的】 fmt.Printf("slice5新= %v\n", slice5) fmt.Println("使用for循环遍历切片") for i := 0; i < len(slice5); i++ { fmt.Println(slice5[i]) } fmt.Println("使用for-range循环遍历切片") for _, v := range slice5 { fmt.Println(v) } // map定义 var map1 = make(map[string]int) //声明一个 string类型键,int类型值的map map1["k1"] = 11 //动态追加 map1["k2"] = 22 //动态追加 fmt.Println("map1=",map1) map2 := map[string]int{"a": 1, "b": 2} // 声明一个map,键为"a"和"b",值为1和2 fmt.Println("map2=",map2) fmt.Println("使用for-range循环遍历MAP") var map3 = map[string]string{"hn":"湖南","gd":"广东","sc":"四川"} for k, v := range map3 { fmt.Printf("map3的键名= %v 值= %v\n", k, v) } //map嵌套:map的值为map fmt.Println("使用for-range循环遍历复杂MAP") student := map[string]map[string]string{"001":{"name":"王大拿","old":"18"},"002":{"name":"老家伙","old":"21"}} student["003"] = map[string]string{"name":"李嘉诚","old":"98"} //动态追加 fmt.Println("student=",student) for k, v := range student { fmt.Printf("map3的键名= %v 值= %v\n", k, v) } //map切片 yao := []map[string]string{{"name":"孙悟空","old":"1000"},{"name":"牛魔王","old":"1200"}} fmt.Println("yao=",yao) yao = append(yao,map[string]string{"name":"铁扇公主","old":"1200"}) //动态追加 fmt.Println("yao=",yao) fmt.Println("yao[0]=",yao[0]) fmt.Println("yao[0][\"name\"]=",yao[0]["name"]) //map结构体 type Std struct { name string old int address string } map8 := make(map[string]Std) map8["01"] = Std{"Jak",18,"广州"} map8["02"] = Std{"Tom",29,"上海"} fmt.Println("map8=",map8) for k, v := range map8 { fmt.Printf("map8 学号= %v 姓名= %v\n", k, v.name) } ```
Golang
数组
切片
map
haohao
1 楼
2024-02-28 22:43
以下安装gin框架请求不了时: ``` txt go get -u github.com//gin-gonic/gin ``` 可以设置: ``` txt #设置goproxy.io代理 go env -w GOPROXY="https://goproxy.io" ```
0
回复 (0)
haohao
2 楼
2024-02-29 17:38
Gin项目在 windows 下打包发布到 linux 时 CMD形式(在vscode 命令窗口中无效) ``` set GOARCH=amd64 set GOOS=linux # 编译发布 go build -o yourAppName ``` ``` 切回wind系统 go env -w CGO_ENABLED=1 GOOS=windows GOARCH=amd64 切到linux系统 go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go 或 go build . ``` Vscode命令窗口中 ``` go env -w GOARCH=amd64 go env -w GOOS=linux # 编译发布 go build -o yourAppName # windows 下记得改配置 go env -w GOOS=windows ```
0
回复 (0)
登录后可回复
发布帖子
作者信息
haohao
等级:Lv2
积分:3323
这家伙很懒,什么都没写呢~
最近热帖
Veitool 2.0.1 版新增数据字典相关功能使用
求安装在子目录教程
我下载测试,是PHPSTUDY下测试,提示要求PHP8.1.0,可找遍了也没有这版本
闲话一些后台功能,给vei作者看的
uniapp的移动端,请求官方出个呀
队列任务管理插件开放下载使用
安装veitool框架(phpStudy)
API接口安全性
在线构建器,安装好后提示普通用户无使用次数。这个需要如何解决呢
没有前台模板的教程,有了后台,前台的模板怎么写,放在哪个目录?
关于系统
VEITOOL
联系方式
合作代理
服务支持
插件中心
官方文档
社区问答
下载中心
产品下载
应用案例
新闻动态
使用协议
插件协议
用户协议
关注微信
Copyright ©2024 veitool.com 版权所有
粤ICP备17132594号-2