iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Golang 中 `array` 和 `slice{array,array,...}` 有什么区别?
  • 301
分享到

Golang 中 `array` 和 `slice{array,array,...}` 有什么区别?

2024-02-09 05:02:32 301人浏览 薄情痞子
摘要

golang 中 `array` 和 `slice{array,array,...}` 有什么区别?这是很多初学者常问的问题。PHP小编子墨为您解答:在Golang中,`array`

golang 中 `array` 和 `slice{array,array,...}` 有什么区别?这是很多初学者常问的问题。PHP小编子墨为您解答:在Golang中,`array` 是一个固定长度的序列,一旦定义后,长度就无法改变。而 `slice` 则是一个动态长度的序列,可以根据需要进行扩容或缩小。此外,`array` 的长度是在定义时确定的,而 `slice` 的长度可以在运行时动态改变。因此,在使用时,需要根据实际需求选择合适的数据结构

问题内容

我很想知道为什么,请给我一点提示。

我想将一个数组附加到res中,res是一个二维切片。所以我需要先转换。 当我将数组转换为切片时,出现错误。

// i need a map to remove duplicates
mm := map[[3]int]bool{}
mm[[3]int{-1, -1, 2}] = true
mm[[3]int{-1, -1, 2}] = true
mm[[3]int{-1, 0, 1}] = true

var res [][]int
for k, _ := range mm {
    res = append(res, k[:])
}
fmt.printf("the res is %v\n", res)
the res is [[-1 0 1] [-1 0 1]]

但是结果不是我想要的。

然后我试探性地修改了一下for循环

for k, _ := range mm {
    //res = append(res, k[:])
    res = append(res, []int{k[0], k[1], k[2]})
}
the res is [[-1 0 1] [-1 -1 2]]

现在结果是对的,但是为什么呢? k[:][]int{k[0],k[1],k[2]} 有什么区别?

解决方法

将循环更改为

for k, _ := range mm {
    j := k
    res = append(res, j[:])
}

您的原始循环声明了一个类型为 [3]int 的变量 k,该变量在内存中具有特定位置。循环的每次迭代,都会将映射 mm 中的不同键复制到该变量。到目前为止,一切顺利。

当您使用 k[:] 将其转换为切片时,它会创建一个切片标头,指向数组 k。这里出错了 - 循环的下一次迭代,k 的值被覆盖。循环中创建的所有切片都指向内存中同一位置的同一支持数组 k

通过首先将 k 的值复制到在循环内声明的变量,您可以为每个切片提供自己的支持数组,从而避免了该问题。

以上就是Golang 中 `array` 和 `slice{array,array,...}` 有什么区别?的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Golang 中 `array` 和 `slice{array,array,...}` 有什么区别?

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

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

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

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

下载Word文档
猜你喜欢
  • Golang 中 `array` 和 `slice{array,array,...}` 有什么区别?
    Golang 中 `array` 和 `slice{array,array,...}` 有什么区别?这是很多初学者常问的问题。php小编子墨为您解答:在Golang中,`array` ...
    99+
    2024-02-09
  • Golang range slice 与range array 之间的区别
    目录为什么?理解case rangeSlicecase rangeArray测试代码结构图: 为什么? var data [][]int for _, rangeSlice :=...
    99+
    2024-04-02
  • java中Array和Arrays有什么区别
    这篇文章将为大家详细讲解有关java中Array和Arrays有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象...
    99+
    2023-06-14
  • Array和Arrays在java 中有什么区别
    这篇文章将为大家详细讲解有关Array和Arrays在java 中有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java可以用来干什么Java主要应用于:1. web开发;2. A...
    99+
    2023-06-06
  • JavaScript Array slice()方法有什么用
    JavaScript中的Array.slice()方法用于从数组中提取出指定范围的元素,然后将这些元素新数组返回。它不会修改原始数组...
    99+
    2023-10-12
    JavaScript
  • Array.apply()、new Array()和arr =[]有什么区别
    本文小编为大家详细介绍“Array.apply()、new Array()和arr =[]有什么区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“Array.apply()、new Array()和arr =[]有什么区别”文章能帮助大家...
    99+
    2023-06-27
  • 在Java中Array和ArrayList有何区别
    Java中Array和ArrayList的区别:Array可以容纳基本类型和对象,而ArrayList只能容纳对象。 ArrayList提供了更多的迭代方式,即Array只能通过循环索引一一访问所有元素。Array是指定大小的,而...
    99+
    2024-04-02
  • 怎么在Golang对Array和Slice进行拷贝
    怎么在Golang对Array和Slice进行拷贝?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。golang的优点golang是一种编译语言,可以将代码编译为机器代码,编译...
    99+
    2023-06-14
  • Scala中Array和List的区别说明
    目录Scala Array和List的区别Scala快排List和Array数组效率实测Scala Array和List的区别 Difference between Array an...
    99+
    2024-04-02
  • php中array什么意思
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • javascript中array什么意思
    在JavaScript中,array(数组)是一个有序的、可变长度的数据集合。它是一种特殊类型的对象,可以通过索引(从0开始)访问其...
    99+
    2023-08-28
    javascript
  • 详谈Array和ArrayList的区别与联系
    昨天去了一个java的实习面试,发现有好多java最基础的数据结构对于博主来说反而感到陌生,在面试官问一些常见的例如HashMap这样的数据结构,博主能回答的头头是道,但是在问到Array和ArrayList的区别和联系之后,却让博主一脸懵...
    99+
    2023-05-31
    array arraylist 区别
  • Numpy中array数组对象的储存方式(n,1)和(n,)有什么区别
    本篇内容介绍了“Numpy中array数组对象的储存方式(n,1)和(n,)有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!例如如果...
    99+
    2023-07-05
  • JavaScript Array constructor属性有什么用
    JavaScript的Array构造函数属性是用于返回创建Array对象时使用的构造函数的引用。它有以下用途:1. 获取数组对象的构...
    99+
    2023-10-12
    JavaScript
  • python中array的用法是什么
    在Python中,array是一种数据结构,用于存储相同类型的元素的有序集合。array可以存储数字、字符串、对象等。它类似于列表,...
    99+
    2023-08-19
    python array
  • python中list与array有什么不同
    python中list与array有什么不同?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发...
    99+
    2023-06-14
  • JavaScript Array sort()方法有什么作用
    sort()方法用于对数组元素进行排序,默认按照字母顺序进行排序。如果要按照其他标准进行排序,可以自定义比较函数作为参数传递给sor...
    99+
    2023-10-11
    JavaScript
  • javascript中array指的是什么意思
    这篇文章给大家分享的是有关javascript中array指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript中array是指数组,而数组对象是使用单独的变量名来存储一系列的值;数组可...
    99+
    2023-06-14
  • sql中array函数的作用是什么
    在SQL中,没有内置的ARRAY函数。在一些特定的数据库系统中,如PostgreSQL或Hive,可以使用ARRAY函数来创建一个数...
    99+
    2024-04-20
    sql
  • sql中array函数的用法是什么
    在SQL中,通常并不提供内置的ARRAY函数,但是在一些数据库管理系统中,比如PostgreSQL和MySQL中,提供了一些用于操作...
    99+
    2024-04-20
    sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作