慢聊Go之GoVSJava之微观比较(6)|Go主题月

479 阅读1分钟

image.png

"进阶架构师" 微信公众号,欢迎大家订阅、阅读、评论、点赞!!!!

前言

如果学一门语言,第一个存储结构,可能都会是数组。数组,作为最简单,易用的数据结构。

我们要清晰地学习。现在呢,我们就来搞一搞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)
}