广告
返回顶部
首页 > 资讯 > 后端开发 > GO >go语言中的二维切片赋值
  • 439
分享到

go语言中的二维切片赋值

GO二维赋值go语言 2022-06-07 20:06:13 439人浏览 安东尼
摘要

先用append填充一维的,然后将一维append到二维 代码如下 var a [][]int for i := 0; i < 10; i++ { var t

先用append填充一维的,然后将一维append到二维

代码如下

var a [][]int
for i := 0; i < 10; i++ {
     var tmp []int
     for j:= 0; j < 10; j++ {
          tmp = append(tmp, j)
     }
     a = append(a, tmp)
}

补充:Go切片的一些技巧

空切片也是切片

与map不同,尚未分配的切片也是可以用的:

一个nil切片的长度和容量都是0;你可以append到一个空切片,Go会自动分配;你也可以直接迭代一个空切片


var s []int64 // nil, len 0, cap 0
for i := range s {
  fmt.Println("this will not be printed")
}
s = append(s, 1) // len 1

结果就是,如果一个map的值是slice类型,那么没必要为一个新的key创建一个slice。


m := map[string][]int64{}
for {
  // do something
  if _, found := m[key]; !found {
    m[key] = []int64{value}
  } else {
    m[key] = append(m[key], value)
  }
}

上面的代码可以替换为


m := map[string][]int64{}
for {
  // do something
  m[key] = append(m[key], value)
}
对一个切片进行重新切片,会分享同一个底层数组

一个切片就是一个指向数组的指针。重新切片(如 s2 := s1[a:b] )就是对相同的底层数组创建了一个新的指针,新的指针具有不同的起始偏移量和切片长度。

结果就是,append操作会修改所有切片。


s1 := []int64{1, 2, 3}
s2 := s1[:1]
s2 = append(s2,0)
fmt.Println(s1) // []int64{1, 0, 3}
……除非需要分配一个新数组:

s1 := []int64{1, 2, 3}
s2 := s1[:1]
s2 = append(s2,0,0,0) // 重新分配了一个新的底层数组
fmt.Println(s1) // []int64{1, 2, 3}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。


您可能感兴趣的文档:

--结束END--

本文标题: go语言中的二维切片赋值

本文链接: https://www.lsjlt.com/news/30590.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • go语言中的二维切片赋值
    先用append填充一维的,然后将一维append到二维 代码如下 var a [][]int for i := 0; i < 10; i++ { var t...
    99+
    2022-06-07
    GO 二维 赋值 go语言
  • go语言二维数组切片怎么定义
    在Go语言中,可以使用make函数来创建二维切片。具体的定义方式如下: slice := make([][]int, numRows...
    99+
    2023-10-21
    go语言
  • c语言二维数组怎么赋值
    C语言中,可以通过循环和下标操作来给二维数组赋值。下面是一个示例:```c#include int main() {int arr[...
    99+
    2023-08-31
    c语言
  • Go语言切片支持多维吗
    这篇文章主要介绍“Go语言切片支持多维吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言切片支持多维吗”文章能帮助大家解决问题。可以。Go语言的切片是支持多维的,声明一个多维切片的语法格式“v...
    99+
    2023-07-05
  • c语言二维数组怎么定义和赋值
    在C语言中,可以通过以下方法定义和赋值二维数组:1. 定义二维数组:可以使用以下语法来定义一个二维数组:```数据类型 数组名[行数...
    99+
    2023-10-12
    c语言
  • 聊聊go语言中的切片(slice)
    本篇文章带大家了解一下golang中可变长度的"数组"——切片(slice),希望对大家有所帮助!golang切片(slice)(1)切片的定义切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做...
    99+
    2022-07-04
    go语言 golang 切片
  • Go语言中的数组与切片介绍
    这篇文章主要讲解了“Go语言中的数组与切片介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言中的数组与切片介绍”吧!1. 数组数组是一个由固定长度的...
    99+
    2022-10-18
  • go语言中切片如何加元素
    这篇文章主要介绍“go语言中切片如何加元素”,在日常操作中,相信很多人在go语言中切片如何加元素问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”go语言中切片如何加元素”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • Go语言中怎么生成二维码
    Go语言中怎么生成二维码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Go语言生成二维码图片使用Go语言编程时,生成任意内容的二维码是非常...
    99+
    2022-10-19
  • Go语言切片是怎么扩容的
    本篇内容主要讲解“Go语言切片是怎么扩容的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言切片是怎么扩容的”吧!在 Go 语言中,有一个很常用的数据结构,那就是切片(Slice)。切片是一...
    99+
    2023-07-06
  • Go语言中的数组和切片是什么
    本篇内容介绍了“Go语言中的数组和切片是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录 数组 切片(Slice)append 函数1...
    99+
    2023-06-20
  • go语言中切片如何增删元素
    这篇“go语言中切片如何增删元素”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言中切片如何增删元素”文章吧。go语言中...
    99+
    2023-07-05
  • Go语言里切片slice的用法介绍
    1.切片是基于数组做的一层封装,灵活能够自动扩容。 2.切片的初始化方法 ①直接创建 ②基于已有的数组或切片 ③使用make来创建一个切片 第一个5是切片的大小 第二个5是切片...
    99+
    2022-11-13
  • Go语言中的数组、切片和映射解析
    目录 数组数组的声明数组循环 切片切片声明切片元素循环 映射Map的声明及初始化Map的遍历 数组 数组存放的是固定长度、相同类型的数据,而且这些存放的元素是连续的。 数组的声...
    99+
    2023-09-08
    学习 go 青少年编程 开发语言
  • go语言中的切片如何定义及使用
    这篇文章主要介绍“go语言中的切片如何定义及使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言中的切片如何定义及使用”文章能帮助大家解决问题。golang切片(slice)(1)切片的定义切...
    99+
    2023-07-02
  • go语言中切片和数组指的是什么
    本文小编为大家详细介绍“go语言中切片和数组指的是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言中切片和数组指的是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在go语言中,数组是一个由固定长度...
    99+
    2023-07-04
  • 通过源码分析Python中的切片赋值
    本文主要介绍的关于Python切片赋值的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 昨天有同学问了我这么个问题: t = [1, 2, 3] t[1:1] = [7] # 感谢@一往...
    99+
    2022-06-04
    赋值 切片 源码
  • go语言如何从切片中删除元素
    这篇文章主要介绍“go语言如何从切片中删除元素”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言如何从切片中删除元素”文章能帮助大家解决问题。删除方法:1、对切片进行截取来删除指定元素,语法“a...
    99+
    2023-07-04
  • Go 语言中怎么实现数组与切片
    本篇文章为大家展示了Go 语言中怎么实现数组与切片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。数组数组是一组类型相同的,长度固定的,按数字编号排列的数据序列。由于 go  语言中,数组的...
    99+
    2023-06-15
  • go语言中切片的长度和容量的区别
    切片的长度,显而易见的就是元素的个数,根据元素的个数进行返回具体的长度。 切片的长度,更像是一个警戒值,如果长度与容量相等,就会进行容量的扩容,比如 des :=make([...
    99+
    2022-06-07
    GO 长度 go语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作