新聞中心
本篇文章重點(diǎn)為大家講解一下Golang二維切片初始化具體方法,有需要的小伙伴可以參考一下。

成都創(chuàng)新互聯(lián)服務(wù)緊隨時(shí)代發(fā)展步伐,進(jìn)行技術(shù)革新和技術(shù)進(jìn)步,經(jīng)過十年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計(jì)師、專業(yè)的網(wǎng)站實(shí)施團(tuán)隊(duì)以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對網(wǎng)站進(jìn)行網(wǎng)站制作、成都網(wǎng)站建設(shè)、建設(shè)、維護(hù)、更新和改版,實(shí)現(xiàn)客戶網(wǎng)站對外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。
引言
之前,刷Leetcode的時(shí)候,有些題需要初始化二維數(shù)組,而一維數(shù)組的初始化,比如:
var a = [5]int{1, 2, 3, 4, 5} // 用var
b := [5]int{1, 2, 3, 4, 5} // 用類型推斷
var c = [...]int{1, 2, 3, 4, 5} // 不確定長度
d := [...]int{1, 2, 3, 4, 5}
如果不知道數(shù)組元素的話,可以這樣:
var a [5]int
b := [5]int{}
c := make([]int, 5)
注意:類型推斷,可要初始化的,如果b := [5]int,就會報(bào)錯(cuò)的。而var a [5]int,則不需要初始化。
二維數(shù)組初始化
比如3*4:
var a [3][4]int
結(jié)果為: [[0 0 0 0] [0 0 0 0] [0 0 0 0]]
類型推斷:
a := [3][4]int{}
結(jié)果為: [[0 0 0 0] [0 0 0 0] [0 0 0 0]]
注意:固定長度的時(shí)候,不能是變量,比如:
m, n := 3, 4
var a [m][n]int // 報(bào)錯(cuò),必須是常量表達(dá)式
如果一定要變量呢?那就得切片了了
func main() {
m, n := 3, 4
a := make([][]int, m) // 二維切片,3行
for i := range a {
a[i] = make([]int, n) // 每一行4列
}
fmt.Println(a)
}
結(jié)果: [[0 0 0 0] [0 0 0 0] [0 0 0 0]]
注意,有一種情況,如果沒有規(guī)定長度或者初始化,訪問元素會range out呢:
var a []int // or a := []int{}
fmt.Println(a) // []
a[0] = 1 // 報(bào)錯(cuò)
當(dāng)前名稱:詳解Golang二維切片初始化
網(wǎng)站路徑:http://www.dlmjj.cn/article/coocegh.html


咨詢
建站咨詢
