栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

再学golang文档(2)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

再学golang文档(2)

一、go语言切片
声明:
1、var name []type  / var name []type{}
      ==nil                      != nil
2、 make( []Type, size, cap )
		!=nil
使用 make() 函数生成的切片一定发生了内存分配操作
切片是动态结构,只能与 nil 判定相等,不能互相判定相等
Go语言append()为切片添加元素:
var a []int
a = append(a,1)切片后面追加元素1    (两倍的扩容,扩容时重新分配地址)
a = append([]int{1},a...) 切片前面追加元素1  (追加就重新分配地址,效率比后面追加差很多)
a = append(a[:i],append([]int{x},a[i:]...)...)   //在第i个位置插入x
a = append(a[:i],append([]int{1,2,3}, a[i:]...)...)  //在第i个位置插入切片
Go语言copy():
切片复制(切片拷贝)
copy( destSlice, srcSlice []T) int
slice1 := []int{1, 2, 3, 4, 5}
slice2 := []int{5, 4, 3}
copy(slice2, slice1) // 只会复制slice1的前3个元素到slice2中
copy(slice1, slice2) // 只会复制slice2的3个元素到slice1的前3个位置
Go语言从切片中删除元素:
从开头位置删除
a = []int{1, 2, 3}
直接移动数据指针:
a = a[1:] // 删除开头1个元素
a = a[N:] // 删除开头N个元素
不移动数据指针:
a = append(a[:0],a[1:]...)
a = append(a[:0],a[N:]...)
使用copy:
a = a[:copy(a,a[1:])]
a= a[:copy(a,a[N:])]

从中间位置删除
a = append(a[:i],a[i+1:]...)
a = a[:i+copy(a[i:],a[i+1:])]
从尾部删除(速度最快)
a = a[:len(a)-1]
a= a[:len(a)-N]
Go语言range关键字:
循环迭代切片
slice := []int{1,2,3,4}
for index,value := slice {
	fmt.Printf("index:%d value:%dn", index,value)
}
for i:=0;i < len(slice); i++ {
	fmt.Println(slice[i])
}
Go语言多维切片简述:
var sliceName [][]...[]sliceType
//声明一个二维切片
var slice [][]int
//为二维切片赋值
slice = [][]int{{10}, {100, 200}}

// 声明一个二维整型切片并赋值
slice := [][]int{{10}, {100, 200}}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号