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

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

相关推荐:《go教程》

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

package mainimport (   "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判断

更多编程相关知识,请访问:编程教学!!

更多相关文章

  1. go语言如何实现字符串转数组
  2. go语言定义一个数组的方法有哪些
  3. go语言如何删除切片
  4. 数组的认识
  5. 一篇文章完全掌握 JavaScript 数组操作[每日前端夜话0x87]
  6. JavaScript算法题:查找数字在数组中的索引[每日前端夜话0x69]
  7. 学习C的第三天-数组
  8. 如何删除 JavaScript 数组中的虚值[每日前端夜话0x55]
  9. 怎样在JavaScript中创建和填充任意长度的数组 [每日前端夜话0x29

随机推荐

  1. 前端学习——前端基础
  2. html5统计数据上报API:SendBeacon
  3. 如何将值发送到弹出窗口
  4. “for”属性的目的是什么?
  5. JNDI不会离我们太远
  6. 如何用c#获取服务器端元素的innerhtml(内部
  7. jsPlumb开发入门教程(实现html5拖拽连线)
  8. 产生一系列的网址
  9. html页面中给img标签的src属性赋值为一张
  10. 仿wordpress管理后台设计的后台管理框架