go数组切片
2017-08-01 10:59
344 查看
数组切片:
数组的长度在定义之后无法再次修改;数组是值类型,每次传递都将产生一份副本。显然这种数据结构无法完全满足开发者的真实需求。
组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针。数组切片的数据结构可以抽象为以下3个变量:
一个指向原生数组的指针;
数组切片中的元素个数;
数组切片已分配的存储空间
基于数组,数组切片添加了一系列管理功能,可以随时动态扩充存放空间,并且可以被随意传递而不会导致所管理的元素被重复
复制。
创建数组切片:
* 创建数组切片的方法主要有两种——基于数组和直接创建
基于myArray的所有元素创建数组切片:
基于myArray的前5个元素创建数组切片:
基于从第5个元素开始的所有元素创建数组切片:
mySlice = myArray[5:]
数组切片支持Go语言内置的cap()函数和len()函数, cap()函数返回的是数组切片分配的空间大小,而len()函数返回的是
数组切片中当前所存储的元素个数。
数组切片支持Go语言的另一个内置函数copy(),用于将内容从一个数组切片复制到另一个,数组切片。如果加入的两个数组切片不一
4000
样大,就会按其中较小的那个数组切片的元素个数进行复制。
slice1 := []int{1,2,3,4,5}
slice2 := []int{5,4,3}
copy(slice2,slice1)
copy(slice1,slice2)
数组的长度在定义之后无法再次修改;数组是值类型,每次传递都将产生一份副本。显然这种数据结构无法完全满足开发者的真实需求。
组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针。数组切片的数据结构可以抽象为以下3个变量:
一个指向原生数组的指针;
数组切片中的元素个数;
数组切片已分配的存储空间
基于数组,数组切片添加了一系列管理功能,可以随时动态扩充存放空间,并且可以被随意传递而不会导致所管理的元素被重复
复制。
创建数组切片:
* 创建数组切片的方法主要有两种——基于数组和直接创建
package main import "fmt" func main(){ var myArray [10]int =[10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} var mySlice []int = myArray[:5] fmt.Println("Elements of myArray:") for _,v := range mySlice { fmt.Print(v,"") } fmt.Println() }
基于myArray的所有元素创建数组切片:
mySlice = myArray[:]
基于myArray的前5个元素创建数组切片:
mySlice = myArray[:5]
基于从第5个元素开始的所有元素创建数组切片:
mySlice = myArray[5:]
数组切片支持Go语言内置的cap()函数和len()函数, cap()函数返回的是数组切片分配的空间大小,而len()函数返回的是
数组切片中当前所存储的元素个数。
package main import "fmt" func main() { mySlice := make([]int, 5, 10) fmt.Println("len(mySlice):", len(mySlice)) fmt.Println("cap(mySlice):", cap(mySlice)) }
数组切片支持Go语言的另一个内置函数copy(),用于将内容从一个数组切片复制到另一个,数组切片。如果加入的两个数组切片不一
4000
样大,就会按其中较小的那个数组切片的元素个数进行复制。
slice1 := []int{1,2,3,4,5}
slice2 := []int{5,4,3}
copy(slice2,slice1)
copy(slice1,slice2)
相关文章推荐
- GO语言数组和切片实例详解
- 《The Way To Go : A Thorough Introduction To The Go Programming Language》之数组切片
- Go语言中的数组(array)和数组切片(slice)
- go语言学习----字符串、数组和切片的应用
- Go语言学习笔记(三)数组 & 切片 & map
- go语言之行--数组、切片、map
- go递归函数如何传递数组切片slice
- 充电时间 Go中的数组、切片、map简单示例
- GO语言数组和切片实例详解
- go语言中的数组切片:特立独行的可变数组
- go的学习记录(二)--- 数组与数组切片
- Go语言4-数组、切片及map
- go第九讲:数组和切片
- Go基础 - 4 数组,切片,集合,通道
- go数组、切片
- go 数组与切片
- go语言数组与切片比较
- go递归函数如何传递数组切片slice
- GO基本数据结构练习:数组,切片,映射
- Go数组与切片