golang 学习(十三)切片的用法_go 切片默认值-程序员宅基地

技术标签: golang  go  golang学习  

切片的用法

定义切片

	var arr1 []int //golang中切片的默认值就是nil
	var arr2 = []int{
    1,2,3,656,788}
	var arr3 = []int{
    1:1,2:2,3:3,4:656,6:788}
	fmt.Println(arr1,arr2,arr3) //[] [1 2 3 656 788] [0 1 2 3 656 0 788]
	fmt.Println(arr1 == nil)//true

基于数组定义 切片

	a := [5]int{
    1,2,35,8,9}
	b := a[:]
	fmt.Printf("%v -- %T",b,b)//[1 2 35 8 9] -- []int
	c := a[1:4] //包含 下标为1的元素  不包含下标为4的元素
	fmt.Printf("%v -- %T",c,c)//[2 35 8] -- []int
	d :=a[2:]
	fmt.Printf("%v -- %T",d,d) //[35 8 9] -- []int
	e :=a[:3]
	fmt.Printf("%v -- %T",e,e)//t[1 2 35] -- []int

切片的长度和容量 len()长度–它所包含的个数 cap()容量–从它的第一个元素开始数,到其底层数组元素末尾的个数

	f :=[]int{
    1,4,7,9}
	fmt.Println(len(f),cap(f))//4 4
	g :=f[1:3]//4,7
	fmt.Println(len(g),cap(g)) //2 3

切片对应不同的数据类型,容量增长的方式也有很大的区别。相关的源码包括:src/runtime/msize.gosrc/runtime/mksizeclasses.go等。

make()方法创建切片 make([]T,size,cap)

	var sliceA = make([]int,4,7)
	fmt.Println(sliceA) //[0,0,0,0]

golang 无法使用下标的方式给切片扩容 append() 方法扩容

	var sliceC []int
	sliceC = append(sliceC,10,34,767,765)
	sliceC = append(sliceC,31)
	sliceC = append(sliceC,41)
	fmt.Println(sliceC) //[10 34 767 765 31 41]

append() 可以实现合并切片

	sliceM := []string{
    "A","B"}
	sliceN :=[]string{
    "D","E"}
	sliceM = append(sliceM,sliceN...)
	fmt.Println(sliceM) //[A B D E]

copy() 复制切片

	sliceM := []string{
    "A","B","D","E"}
	sliceF:= make([]string,4,5)
	copy(sliceF,sliceM)
	fmt.Println(sliceF)//[A B D E]
	sliceF[2] = "G"
	fmt.Println(sliceM,sliceF)// [A B D E] [A B G E]
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wangyufeng43400141/article/details/106975914

智能推荐

ganglia安装-程序员宅基地

文章浏览阅读68次。我是参考 http://www.ibm.com/developerworks/cn/linux/l-ganglia-nagios-1/ 这篇文章搭建的ganglia,部分内容页引自这篇文章,与原文不同之处用红色标出,操作系统是CentOS 5.7 x86_64。安装 Ganglia先决条件假定您已经设置了 yum 库,安装先决条件在很大程度上应当十分简单。类...

Magics修复STL文件_magics导入零件 stp-程序员宅基地

文章浏览阅读7k次。Magics RP是比利时Materialise公司开发的、完全针对3D打印工序特征的软件,其目前最新版本为19.01。Magics为处理STL文件提供了理想的、完美的解决方案,具有功能强大、易用、高效等优点,是从事3D打印行业必不可少的软件。在3D打印行业,Magics常用于零件摆放、模型修复、添加支撑、切片等环节。  由于STL文件结构简单,没有几何拓扑_magics导入零件 stp

oracle 学习网站收集-程序员宅基地

文章浏览阅读1.7k次。《转载》Oracle官方站:Oracle中文官网metalink.oracle.comOracle官方知识库,需要付费帐号登陆tahiti.oracle.comsearch and download documentation for Oracle's server productsOracle11gR1Online DocumentationOracle10gR2 Online Docu

【毫米波雷达】毫米波雷达接收发射信号matlab仿真_毫米波雷达仿真-程序员宅基地

文章浏览阅读872次,点赞22次,收藏26次。毫米波雷达是一种利用毫米波段电磁波来探测目标的雷达系统。它具有体积小、重量轻、功耗低、分辨率高、抗干扰能力强等优点,广泛应用于汽车、航空、航天、军事等领域。毫米波雷达的工作原理是:雷达发射机发射毫米波电磁波,电磁波遇到目标后反射,反射波被雷达接收机接收,并根据反射波的强度、频率和相位等信息来确定目标的位置、速度和姿态。毫米波雷达的接收发射信号主要包括以下几个步骤:发射信号毫米波雷达发射机产生毫米波电磁波,并通过天线发射出去。发射信号的频率、功率和波形等参数由雷达系统的设计要求决定。信号传播。_毫米波雷达仿真

matlab for,while,break和continue循环和循环控制_matlab设计问题if,while,for都包含的例题-程序员宅基地

文章浏览阅读6.4k次,点赞6次,收藏8次。for循环循环特定的次数,用end表示循环快结束。示例如下:注意n可以从1取到10,总共循环10次。while循环只要条件为真,就一直循环,用end表示循环快结束。示例如下:该程序中,设置n初值为10,然后进入while循环中。m为产生不大于n的一个随机数,当产生的随机数m和n相等时,退出循环。否则把n加1,再次循环。运行结果如下:if end条件控制if后面要和一个布尔表达式,后面再跟一个或者多个语句分割,就是一个if..end语句。运行如下:i_matlab设计问题if,while,for都包含的例题

奇舞学院JS01—如何写好原生JS_原生js怎么写-程序员宅基地

文章浏览阅读159次。1、交通灯实例<!DOCTYPE html><html><head> <title>js04-1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href=&qu_原生js怎么写

随便推点

IDEA中快捷创建SpringBoot主启动类的方法的设置_idea本地启动spring配置主类-程序员宅基地

文章浏览阅读4.9k次,点赞4次,收藏11次。IDEA中快捷创建SpringBoot主启动类的方法的设置,自动同步同类名的参数_idea本地启动spring配置主类

Android 动态添加View 并设置id_android字符串动态生成view id-程序员宅基地

文章浏览阅读2.7w次,点赞14次,收藏40次。主页面布局(main_activity.xml) LinearLayout 里面加一个Button,注意这里的LinearLayout要有orientation<?xml version="1.0" encoding="utf-8"?><LinearLayout ="http://schemas.android.com/apk..._android字符串动态生成view id

[arcgis插件]尖锐角检查/批量处理工具-GIS程序猿_arcgis如何查尖锐角-程序员宅基地

文章浏览阅读459次。2、设置合并优先级。选择字段,设置优先级。无需优先级,可以吧文字清空,则会根据与地块有相同信息字段的值来合并。[arcgis插件]尖锐角检查/批量处理工具,支持arcgis10.2-10.8版本。7、仅仅检查选中的地块:先选中地块再执行流程。5、处理流程设置:1 处理,2 切割,3 合并。6、顺便检查选择检查狭长面、自相交、重复节点。4、存在尖锐角并且面积小于这个面积阈值,则无需切割,直接合并。可以选择shp数据、GDB或者MDB的矢量面图层。年度变更,又是尖锐角,死磕尖锐角,就不信搞不定它。_arcgis如何查尖锐角

例子:BlackBerry真正的后台运行程序,Task里面看不到的哦_黑莓手机guid-程序员宅基地

文章浏览阅读5k次。说明:1.BlackBerry_App_Descriptor.xml设置程序为Auto-run on startup,Do not display the application icon on the BlackBerry home screen2.手机开机后自动运行 BackgroundApplication3.主程序BackgroundApplication的main中,执行BackgroundThread.waitForSingleton().start();启动后台线程4.BackgroundTh_黑莓手机guid

oracle中查找执行效率低下的SQL_oracle 怎么抓取执行慢的sql-程序员宅基地

文章浏览阅读9.9k次。oracle中查找执行效率低下的SQLkt431128 发布于 9个月前,共有 0 条评论v$sqltext:存储的是完整的SQL,SQL被分割v$sqlarea:存储的SQL 和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息(统计)v$sql:内存共享SQL区域中已经解析的SQL语句。(即时) select opname, ta_oracle 怎么抓取执行慢的sql

linux下iso8859乱码,在Linux上转换UTF-8和ISO-8859之间的文件-程序员宅基地

文章浏览阅读3k次。每当我遇到Unicode时,都没有用.我在Linux上,我从Windows获得这些文件:$file *file1: UTF-8 Unicode textfile2: ISO-8859 textfile3: ISO-8859 text在我发现文件有不同的编码之前,没有任何工作.我希望让我的生活变得轻松,并将它们全部放在相同的格式中:iconv -f UTF-8 -t ISO-8859 file1 &..._iso-8859 text

推荐文章

热门文章

相关标签