首页后端开发其他后端知识go语言中切片与数组有哪些不一样的区别?

go语言中切片与数组有哪些不一样的区别?

时间2024-03-27 06:02:03发布访客分类其他后端知识浏览441
导读:在这篇文章中我们会学习到关于“go语言中切片与数组有哪些不一样的区别?”的知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望对大家学习或工作能有帮助。下面就请大家跟着小编的思路一起来学习一下吧。 区别:1、切片是...
在这篇文章中我们会学习到关于“go语言中切片与数组有哪些不一样的区别?”的知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望对大家学习或工作能有帮助。下面就请大家跟着小编的思路一起来学习一下吧。

区别:1、切片是指针类型,数组是值类型;2、数组的长度是固定的,而切片不是(切片可以看成动态的数组);3、切片比数组多一个容量(cap)属性;4、切片的底层是数组。

本文操作环境:windows10系统、Go 1.11.2、thinkpad t480电脑。

以下代码输出什么?如果去掉注释又输出什么?

package main

import (
   "fmt"
)
func main() {

   a := [2]int{
5, 6}

   b := [2]int{
5, 6}

   if a == b {

      fmt.Println("equal")
   }
 else {

      fmt.Println("not equal")
   }

   /*
      if a[:] == b[:] {

          fmt.Println("equal")
      }
 else {

          fmt.Println("not equal")
      }

   */
}
    

输出:

equal

去掉注释提示:

invalid operation: a[:] == b[:] (slice can only be compared to nil)

说明:

go语言中数组和切片的区别

● 切片是指针类型,数组是值类型

● 数组的长度是固定的,而切片不是(切片是动态的数组)

● 切片比数组多一个属性:容量(cap)

● 切片的底层是数组

所以,a、b定义的是数组类型,数组对比是相同的

但是,a[:]、b[:]是切片,切片之间不能进行等值判断,只能和nil判断


现在大家对于go语言中切片与数组有哪些不一样的区别?的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多go语言中切片与数组有哪些不一样的区别?的知识,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

go语言数组切片

若转载请注明出处: go语言中切片与数组有哪些不一样的区别?
本文地址: https://pptw.com/jishu/654026.html
Bootstrap中限定日期选择器可选范围的方法是什么 Bootstrap获取行数据的方式有几种,具体怎么实现

游客 回复需填写必要信息