zoukankan      html  css  js  c++  java
  • GO语言数组,切片,MAP总结

    数组

    数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。
    数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1,访问越界(下标在合法范围之外),则触发访问越界,会panic。
    数组是值类型,赋值和传参会复制整个数组。因此改变副本的值,不会改变本身的值。

    数组声明

    var 数组变量名 [元素数量]元素类型
    var a [3]int  //声明一个长度为3的整形数组
    var city = [...]string{"北京", "上海", "深圳"} //声明一个可变长度的字符串类型数组并且初始化
    

    数组定义必须指定长度。
    让编译器根据初始值的个数自行推断数组的长度...

    切片

    切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。
    切片是一个引用类型,它的内部结构包含地址、长度和容量。

    切片声明

    var 变量名称[]元素类型       //切片不需要声明长度
    var a []string              //声明一个字符串切片
    var b = []int{}             //声明一个整型切片并初始化
    var c = []bool{false, true} //声明一个布尔切片并初始化
    

    使用make()函数构造切片

    make([]元素类型, 切片中元素的数量, 切片的容量)
    s := make([]int, 2, 10)
    

    切片不需要指定长度。
    切片之间是不能比较,只能和nil比较!

    map

    map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。map是无序的。

    map声明

    map[键类型]值类型
    make(map[KeyType]ValueType, [cap])
    其中cap表示map的容量,该参数不是必须的
    

    三种声明方式

    //第一种声明
    var test1 map[string]string
    //在使用map前,需要先make,make的作用就是给map分配数据空间
    test1 = make(map[string]string, 10) 
    test1["one"] = "php"
    //第二种声明
    test2 := make(map[string]string)
    test1["one"] = "php"
    //第三种声明,初始化赋值
    test3 := map[string]string{
        "one" : "php",
    }
    
  • 相关阅读:
    C primer plus 摘抄(第三章 数据和C)
    lambda表达式+python内置函数
    补充(pass)
    If语句和while语句
    解释器和编译器的区别
    关于python编码
    初识Python
    unity学习(一)ide窗口
    unity学习
    redis实践 —— redisReply简析
  • 原文地址:https://www.cnblogs.com/show58/p/12610710.html
Copyright © 2011-2022 走看看