• 技术文章 >后端开发 >Golang

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

    青灯夜游青灯夜游2021-01-18 18:24:16原创11896

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

    本文操作环境: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语言中数组和切片的区别是什么?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:go语言 数组 切片
    上一篇:win7 go语言如何安装 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • golang是go语言吗?• docker为什么用go语言写?• Go语言实现之基于websocket浏览器通知功能• 关于用Go语言编程的利与弊• 解决GO语言安装air框架时遇到go: inconsistent vendoring问题• go语言中run与build命令的区别是什么?
    1/1

    PHP中文网