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",
    }
    
  • 相关阅读:
    折腾,折腾!VM7.0 虚拟机安装雪豹Mac OS snow leopard 10.6!
    STM32启动代码概述
    【淘宝装修】PS DW 介绍 教程 代码(终极篇)
    讲讲volatile的作用
    MSB与LSB
    PLL
    Bootloader之uBoot简介(转)
    AMBA、AHB、APB总线简介
    安装VMWARE WORKSTATION,提示“你已经安装过VMware,请先卸载后再安装”的解决方法
    YII 建立目录项目 YIIC
  • 原文地址:https://www.cnblogs.com/aresxin/p/2467234365.html
Copyright © 2011-2022 走看看