var 陣列變數名 元素數量 T

2021-09-28 23:23:55 字數 2268 閱讀 3555

var 陣列變數名 [元素數量]t

比如:var a [5]int, 陣列的長度必須是常量,並且長度是陣列型別的一部分。一旦定義,長度不能變。 [5]int和[10]int是不同的型別。

var a [3]int

var b [4]int

a = b //不可以這樣做,因為此時a和b是不同的型別

陣列可以通過下標進行訪問,下標是從0開始,最後乙個元素下標是:len-1,訪問越界(下標在合法範圍之外),則觸發訪問越界,會panic。

陣列的初始化

陣列的初始化也有很多方式。

方法一初始化陣列時可以使用初始化列表來設定陣列元素的值。

func main()                 //使用指定的初始值完成初始化

var cityarray = [3]string //使用指定的初始值完成初始化

fmt.println(testarray)                      //[0 0 0]

fmt.println(numarray)                       //[1 2 0]

fmt.println(cityarray)                      //[北京 上海 深圳]

}方法二

按照上面的方法每次都要確保提供的初始值和陣列長度一致,一般情況下我們可以讓編譯器根據初始值的個數自行推斷陣列的長度,例如:

func main()

var cityarray = [...]string

fmt.println(testarray)                          //[0 0 0]

fmt.println(numarray)                           //[1 2]

fmt.printf("type of numarray:%t\n", numarray)   //type of numarray:[2]int

fmt.println(cityarray)                          //[北京 上海 深圳]

fmt.printf("type of cityarray:%t\n", cityarray) //type of cityarray:[3]string

}方法三

我們還可以使用指定索引值的方式來初始化陣列,例如:

func main()

fmt.println(a)                  // [0 1 0 5]

fmt.printf("type of a:%t\n", a) //type of a:[4]int

}陣列的遍歷

遍歷陣列a有以下兩種方法:

func main()

// 方法1:for迴圈遍歷

for i := 0; i < len(a); i++ ,,,

}fmt.println(a) //[[北京 上海] [廣州 深圳] [成都 重慶]]

fmt.println(a[2][1]) //支援索引取值:重慶

}二維陣列的遍歷

func main() ,,,

}for _, v1 := range a

fmt.println()}}

輸出:北京  上海

廣州  深圳

成都  重慶

注意: 多維陣列只有第一層可以使用...來讓編譯器推導陣列長度。例如:

//支援的寫法

a := [...][2]string,,,

}//不支援多維陣列的內層使用...

b := [3][...]string,,,

}陣列是值型別

陣列是值型別,賦值和傳參會複製整個陣列。因此改變副本的值,不會改變本身的值。

func modifyarray(x [3]int)

func modifyarray2(x [3][2]int)

func main()

modifyarray(a) //在modify中修改的是a的副本x

fmt.println(a) //[10 20 30]

b := [3][2]int,,,

}modifyarray2(b) //在modify中修改的是b的副本x

fmt.println(b)  //[[1 1] [1 1] [1 1]]

}注意:

陣列支援 「==「、」!=」 操作符,因為記憶體總是被初始化過的。

[n]*t表示指標陣列,*[n]t表示陣列指標 。

標籤: go基礎

dr_wei

關注 - 13

粉絲 - 0

變數名命名

有些東西不明確寫出來就難以確定下來,個人寫 的命名風格一直沒有穩定下來,今天寫個筆記明確幾類主要的命名,希望可以逐步養成自己的程式設計風格。1.類名 型別名 t 每個單詞首字母大寫 例 t typename 2.列舉型別 反應型別的複數形式 例 enum colors 3.函式名 每個單詞首字母大寫...

變數名提公升

預解析的過程 的執行過程 程式在執行過程,會先將 讀取到記憶體中檢查,會將所有的宣告在此時進行標記。所謂的標記就是讓js直譯器直到有這個名字,後面在使用名字的時候,不會出現未定義的錯誤,這個標記就是提公升 宣告 名字的宣告,識別符號的宣告 變數名的提公升 函式的宣告 函式宣告與函式表示式有區別,函式...

Oracle中的替換變數, 變數名, 變數名

替換變數 僅用於sql plus或者用於原理和sql plus相同的開發工具 臨時儲存值 利用它可以達到建立通用指令碼的目的 利用它可以達到和使用者互動,故在sql plus中又稱互動式命令 替換變數的格式式在變數名稱前加乙個 以便在執行sql命令時提示使用者輸入替換資料,然後按輸入資料執行sql命...