首页 > 其他分享 >golang slice 和 array区别

golang slice 和 array区别

时间:2022-12-08 16:36:24浏览次数:63  
标签:slice int golang ar 数组 array

数组: var arr = [10]{1,2,3,4,5,6}
slice: var arr = []{1,2,3,4,5,6}

array 类型

 array是固定长度的数组,使用前必须确定数组长度

golang array 特点:

  • golang中的数组是值类型,也就是说,如果你将一个数组赋值给另外一个数组,那么,实际上就是整个数组拷贝了一份
  • 如果golang中的数组作为函数的参数,那么实际传递的参数是一份数组的拷贝,而不是数组的指针
  • array的长度也是Type的一部分,这样就说明[10]int[20]int是不一样的。

slice类型

  • slice是一个引用类型,是一个动态的指向数组切片的指针。
  • slice是一个不定长的,总是指向底层的数组array的数据结构。

1.创建slice

  1.   动态数组创建,类似创建数组,但是没有指定固定长度
  2.   var al []int //创建slice
  3.   sl := make([]int,10) //创建有10个元素的slice
  4.   sl:=[]int{1,2,3} //创建有初始化元素的slice
  5.    

2.先创建数组,在数组的基础上建立切片slice

  1.   var arr =[10]{1,2,3,4,5。6}
  2.   sl := arr[2:5] //创建有3个元素的slice
  3.    

3.slice有一些简便的操作

  1.   - `slice`的默认开始位置是0,`ar[:n]`等价于`ar[0:n]`
  2.   - `slice`的第二个序列默认是数组的长度,`ar[n:]`等价于`ar[n:len(ar)]`

数组和slice的区别

  • 声明数组时,方括号内写明了数组的长度或者...,声明slice时候,方括号内为空
  • 作为函数参数时,数组传递的是数组的副本,而slice传递的是指针。

标签:slice,int,golang,ar,数组,array
From: https://www.cnblogs.com/zhanchenjin/p/16966469.html

相关文章

  • (转)array_map函数
    在php数组函数群中有一个名字很奇怪的函数叫array_map真不知道为啥叫这个名字???但是这个函数作用倒是很大,嘿嘿……本函数可以将一个数组通过回调函数......
  • Golang依赖管理工具:glide从入门到精通使用
    这是一个创建于 2017-07-2205:33:09 的文章,其中的信息可能已经有所发展或是发生改变。介绍不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题。Java有牛逼轰轰......
  • 树莓派2b构建golang环境
    前言开始之前,我们先说点题外话。已经好久没有更新过技术内容了(认真脸)。一个原因是很长时间以来,一直感觉不在状态,迷茫、困惑,浑浑噩噩的,也没有分享的动力,虽然偶尔会记录一些......
  • List的两种子类LinkedList, ArrayList的选择
    List的两种子类LinkedList,ArrayList的选择背景:LeetCode的一道回溯题目78.子集分析题目意思是枚举所有的子集,必然想到回溯算法,本人使用回溯习惯使用一个成员变量链......
  • Function函数 Array函数
    Function:函数(方法)对象1.创建∶1.varfun=newFunction(形式参数列表,方法体);/忘掉吧2.function方法名称(形式参数列表){方法体}I3.var方法名=function(形式参数列......
  • golang编译为dll与调用dll简单样例
    ==前置准备==1、golang版本:1.182、安装MinGW(我的环境本身已经安装好了,没有验证不安装是否可以生成) ==编译为DLL==【代码样例】packagemainimport"C"//export......
  • base64转ArrayBuffer
          functionbase64ToUint8Array(base64String){      varbase64=base64String.replace(/^data:image\/\w+;base64,/,"");    ......
  • Arrays类常用方法
    概述java.util.Arrays此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。操作数组的方法publicstaticStringtoString(int[......
  • go-dongle 0.2.0 版本发布了,一个轻量级、语义化的 golang 编码解码、加密解密库
    dongle是一个轻量级、语义化、对开发者友好的Golang编码解码和加密解密库Dongle已被awesome-go收录,如果您觉得不错,请给个star吧github.com/golang-module/dong......
  • 【collection】3.java容器之ArrayList
    ArrayListArrayList底层是数组add新增元素的时候其实就是在数组下一个位置进行元素赋值,重点是在扩容上扩容privatevoidgrow(intminCapacity){ //overflow-cons......