golang:go语言中数组和切片的区别是什么?

 所属分类:php教程

 浏览:173次-  评论: 0次-  更新时间:2022-09-30
描述:更多教程资料进入php教程获得。 区别:1、切片是指针类型,数组是值类型;2、数组的长度是固定的,而切片不是(切片可以看成动态的数组);...
更多教程资料进入php教程获得。

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

php入门到就业线上直播课:进入学习
API 文档、设计、调试、自动化测试一体化协作工具:点击使用

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

相关推荐:《go教程》

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

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语言中数组和切片的区别是什么?的详细内容,更多请关注zzsucai.com其它相关文章!

积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!