前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go之array、slice、map

Go之array、slice、map

作者头像
院长技术
发布2020-07-09 15:37:55
5520
发布2020-07-09 15:37:55
举报
文章被收录于专栏:院长运维开发
代码语言:javascript
复制
package main;
 
import (
    "fmt"
);
 
func main() {
    //声明数组,5表示数组长度,int表示存储的元素类型
    var arr [5]int;
    //下标从0开始
    arr[0] = 5;
    arr[1] = 6;
 
    //长度也是数组类型的一部分,[4]int与[5]int是不同类型
    //数组不能改变长度,数组之间的赋值是值的赋值,而不是指针
    
    //声明并初始化
    a := [3]int{1,3};
    b := [5]int{4,6};
    //会自动计算长度
    c := [...]int{7,8,9};
    //多维数组,二行二列
    d := [2][2]int{[2]int{1,2},[2]int{3,4}};
    e := [2][2]int{{1,{3,4}};
 
    //slice并不是真正意义上的动态数组,而是一个引用类型
    //slice总是指向一个底层array
    //slice的声明类似array,只是不需要长度
    var f []int;
    g := []byte{'a','b','c'};
    //slice可以从一个数组或一个已经存在的slice中再次声明
    var h []byte = g[1:3];
 
    //数组和slice声明的不同
    //声明数组时,方括号内写明了数组的长度或使用...自动计算长度
    //声明slice时,方括号内没有任何字符
 
    var i = [6]int{1,3,4,6};
    //声明初始化两个slice
    var j []int = i[2:5];
    var k []int = i[1:6];
    //slice是引用类型,改变j中的内容,i和k的内容也会变
    j[0] = 9;
 
    //map类型的声明,key是字符串,值是int
    //这种方式会创建一个nil map,所以在使用时必须用make初始化。
    var m map[string]int;
    m = make(map[string]int);
 
    //另一种声明方式
    n := make(map[string]int);
 
    //声明并初始化
    l := map[string]int {"age":30,"height":192}
 
    m["age"] = 25;
    m["height"] = 172;
 
    n["age"] = 25;
    n["height"] = 186;
 
    //map是无序的,长度不固定,引用类型
    //判断key是否存在
    //map有两个返回值,第二值表示key是否存在
    val,exist := m["height"];
    if exist {
        fmt.Print(val);
    }
 
    fmt.Printf("%v\n%v\n%v\n%v\n%v\n",e);
    fmt.Printf("%v\n%v\n%v\n",h);
    fmt.Printf("%v\n%v\n%v\n",k);
    fmt.Printf("%v\n%v\n%v\n",m,n,l);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档