参照Java学Go(三)—— go的内置类型:数组、切片slice、map

本文介绍了Go语言中的数组、切片(slice)和Map的使用。数组在Go中长度固定,切片是动态数组,类似于Java的ArrayList。Map操作简洁,但无序且线程不安全,类似于HashMap。遍历可通过内置的range函数实现。
摘要由CSDN通过智能技术生成

    前一篇说到了go的变量、常量和基本数据类型,接下来继续说一下go的其他内置类型:数组、切片(slice)和集合(map)

    一,数组

    go和java中肯定都有数组了,只不过在定定义上和定义变量类似,把类型放到了后边(还是觉得很难受有没有?)

    首先对比一下定义:

//java:
int[] arr;            //没有初始化
arr = new int[1]{};   //初始化长度为1的数组
int[] arr1 = new int[]{1,2,3};   //初始化三个值
//go:
var arr [1]int        //同样
arr = [1]int{}       //初始化长度为1的数组
arr1 := [3]int{1,2,3}          //同样初始化三个值
arr2 := [...]int{1,2,3}          //同样初始化三个值

    我们看到不光数组类型放到了变量后边,类型名称都放到了"[]"后边,和java完全是颠倒的(真的好别扭);

    注意,在初始化arr1的时候,go的[]中指定了3(也可以不写,但是不写就是切片了,之后会说到),但是在java中的[]中是不能指定的,否则会报错。

    再有,在go初始化arr2的时候,[]中写额是“...”,三个点表示自动计算长度,用户用户保持长度的正确性,但是这种只能是在静态初始化的时候(指定数组内容),如下也会报错的:
var arr2 [...]string //报错:use of [...] array outside of array literal
    数组在使用上也都一样,都是使用“[]”来对元素进行操作:
var 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值