GO中的数组切片
GO中的数组切片可以看做是功能更强大的数组,在append数据时,可以自动调整内存大小以适应数据实际大小,有些类似于C#中的List<T>。
GO 中数组切片的“容量”与实际储存的大小可以不同,比如一个杯子容量是500ml,实际只装了200ml的水。
数组切片的基本用法:
fmt.Println("数组切片可以看做是一种比普通数组更强大的数组")
//数组切片
fmt.Println("数组切片:")
fmt.Println("首先创建数组:")
var aryVal []int = []int{1, 2, 3, 4, 5, 6, 7, 8}
//fmt.Println("Arry = ", aryVal)
//根据数组创建数组切片
fmt.Println("根据数组创建数组切片[从 0 ~ 2]:")
var aryClince []int = aryVal[:3]
fmt.Println("aryClince = ", aryClince)
var aryClince2 []int = aryVal[3:len(aryVal)]
fmt.Println(aryClince2)
//直接通过make函数床架数组切片
fmt.Println("直接通过make函数床架数组切片:")
var slicel []int = make([]int, 6)
fmt.Println("函数make创建的数组切片默认将元素初始化为对应类型的默认值:")
fmt.Println("slicel = ", slicel)
for i, _ := range slicel {
slicel[i] = i + 1
}
fmt.Println("对切片赋值后:")
fmt.Println(slicel)
fmt.Println("切片的储存能力和当前储存量可以不同")
var slicel2 []int = make([]int, 12, 20)
for i := 0; i <= 4; i++ {
slicel2[i] = i + 1
}
fmt.Println("slicel2 = ", slicel2)
fmt.Println("cap of slicel2(切片预留的储存能力) = ", cap(slicel2))
fmt.Println("length of slicel2(切片当前储存量) = ", len(slicel2))
//切片后动态追加数据 使用append函数追加数据
var slicel4 []int = make([]int, 5, 15)
for i := 0; i < len(slicel4); i++ {
slicel4[i] = i + 1
}
fmt.Println("slicel4 = ", slicel4)
//
slicel4 = append(slicel4, 9, 0, 1, 2, 3)
fmt.Println("Append datas :", slicel4)
temslicel := []int{22, 3, 44, 55, 66, 77, 88}
slicel4 = append(slicel4, temslicel...) //注:后面 ... 表示将切片打散为单个元素后进行插入
fmt.Println("Appended slicel:", slicel4)
GO中的数组切片的更多相关文章
- go语言中的数组切片:特立独行的可变数组
go语言中的数组切片:特立独行的可变数组 初看go语言中的slice,觉得是可变数组的一种很不错的实现,直接在语言语法的层面支持,操作方面比起java中的ArrayList方便了许多.但是在使用了一段 ...
- Go中的数组切片的使用总结
代码示例 package main import "fmt" func main(){ fmt.Println("Hello, world") // 定义数组的 ...
- Python中ndarray数组切片问题a[-n -x:-y]
先看看如下代码: >>a=np.arange(10)>>a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>a[-7:] array( ...
- Go语言中的数组与数组切片
Go中的数组与C的数组一样,只是定义方法不同 c: int a[10][10] Go [10][10]int 定义并初始化 array1 := [5]int{1,2,3,4,5} 变量名 := [in ...
- Go语言中底层数组和切片的关系以及数组扩容规则
Go语言中底层数组和切片的关系以及数组扩容规则 demo package main import ( "fmt" ) func main() { // 声明一个底层数组,长度为10 ...
- golang中不定参数与数组切片的区别
package main import "fmt" func main() { myfunc1(, , , ) //传递不定数量的参数 myfunc2([], , , }) //传 ...
- 窥探Swift之数组安全索引与数组切片
今天是元宵节,祝大家元宵节快乐!在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值.在使用数组时,一个常见的致命错误就是数组越界.如果在 ...
- go语言 类型:数组切片
初看起来,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针.数组切片的数据结构可以抽象为以下3个变量: 1.一个指向原生数组的指针: 2.数组切片中的元素个数: 3.数组切 ...
- Shell中的数组及其相关操作
http://blog.csdn.net/jerry_1126/article/details/52027539 Shell中数据类型不多,比如说字符串,数字类型,数组.数组是其中比较重要的一种,其重 ...
随机推荐
- 页面异步请求会保留原有的js内容
最近在开发前端的时候发现一个问题,这个问题应该是很多前端开发人员都容易忽视的一个问题,但却是一个很重要的问题. 就是在开发一个页面的时候,在使用某个函数时,这个函数可以正常使用,便会认为这个页面中定义 ...
- React 实践项目 (二)
React在Github上已经有接近70000的 star 数了,是目前最热门的前端框架.而我学习React也有一段时间了,现在就开始用 React+Redux 进行实战! React 实践项目 (一 ...
- JavaWeb 后端 <四> 之 Cookie HttpSession 学习笔记
一.会话管理概述 1.什么是会话? 好比一次通话.打开浏览器,点击多次链接(发出多次请求和收到多次的响应),关闭浏览器,这个过程就是一次会话. 有功能 可以 文件 新建会话 2.解决的问题是什么? ...
- oracle常用函数及关键字笔记
--函数及关键字--1.trim,ltrim,rtrim 去除字符,无指定默认去除空格SELECT TRIM('a' FROM 'aafhfhaaaaaaaa'), LTRIM('aafhfhaaaa ...
- java的字符串操作和for循环的使用
/* "12 0 99 -7 30 4 100 13" 要求对字符串中的数值进行排序.生成一个数值从小到大新字符串. "-7 0 4 12 13 30 99 100&qu ...
- objc[20556]:Class JavaLaunchHelper is implemented in both xxx 警告处理
今天在Mac上对IntelliJ Idea 进行了升级 升级到2017.01后,运行程序时,出现以下红色警告: objc[20556]: Class JavaLaunchHelper is imple ...
- Andorid源码系列:View的onTouchEvent()与performClick(),performLongClick()调用时机解析
这是大土豆的第一篇博客,想着工作3年多了,在工作上从一名菜鸟逐渐成长为在项目中能干点事的人,自己对Android的见解也一步步加深,有必要写一些对Android代码和开发过程中的感悟,和广大朋友们分享 ...
- Android之ListView优化
关于ListView几个方面的优化: ListView的大小设定固定值; 复用convertView, 使用ViewHolder提高在容器中查找组件的效率; 使用分页加载; 快速滚动时, item不显 ...
- tensorflow Relu激活函数
1.Relu激活函数 Relu激活函数(The Rectified Linear Unit)表达式为:f(x)=max(0,x). 2.tensorflow实现 #!/usr/bin/env pyth ...
- 《HelloGitHub》第 16 期
<HelloGitHub>第 16 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程. ...