前言
如果学一门语言,第一个存储结构,可能都会是数组。数组,作为最简单,易用的数据结构。
我们要清晰地学习。现在呢,我们就来搞一搞Go的数组,看一下与Java的数组有啥区别。
走起来!!
Java数组
Java数组,我们很容易学习。
简单举例下:
public static void main(String[]args) { int[] a = {1,2,3}; // 一维数组 静态初始化 int[] b = new int[3]; // 一维数组 动态初始化 int[][] c = new int[3][3]; // 多维数组 }
具体的数组操作,我在这就不再赘述了,属于Javer的基础知识,没啥问题。
现在,我们开始进入Go的世界,看一下Go的数组的相关。
Go数组
Go的一维数组
var 数组名 [数组长度]数组类型 = [数组长度]数组类型{元素1,元素2...}
示例1:
package main import "fmt" //全局 var my_arr [6]int var my_arr_1 [3]int = [3]int{1,2,3} func main() { //方法内: this_arr := [2]int{1, 2} fmt.Println(my_arr) fmt.Println(my_arr_1) fmt.Println(this_arr) }
我们可以很简单的,看出来,Go语言中,对于一维数组的定义与Java其实基本一致。很相似。
大家,可以自行进行对比。
Go中二维数组
其实在,Java中并不显式称二维数组,没有这个概念。在Go中就有这个概念。
package main import "fmt" //全局 var my_arr [4][6]int var my_arr_1 [2][3]int = [...][3]int{{1, 2, 3}, {4, 5, 6}} func main() { //方法内: this_arr := [2][3]int{{1, 2, 3}, {8, 8, 8}} // 第 2 纬度不能用 "..."。 this_arr2 := [...][2]int{{1, 1}, {2, 2}, {3, 3}} fmt.Println(my_arr) fmt.Println(my_arr_1) fmt.Println(this_arr) fmt.Println(this_arr2) }