陣列與切片
陣列陣列是值型別。取位址&變數名;
陣列的第乙個元素的位址,就是陣列的位址;
陣列的每個元素的位址間隔是依據陣列的型別決定,比如int64-》8 interweb2-》4
四種陣列初始化方式
var numsarray01 [3]
int=[3
]int
var numsarray02 =[3
]int
var numsarray03 =
[...
]int
var numsarray04 =[3
]string
fmt.
println
(numsarray01)
fmt.
println
(numsarray02)
fmt.
println
(numsarray03)
fmt.
println
(numsarray04)
// 迴圈
for_
, value :=
range numsarray01
陣列的注意事項和細節
陣列是多個相同型別資料的組合,乙個陣列一旦宣告/定義了,其長度是固定的,不能動態變化。
var arr int 這時arr就是乙個slice切片。
陣列中的元素可以是任何資料型別,包括值型別和引用型別,但不能混用。
陣列建立後,如果沒有賦值,有預設值
使用陣列的步驟:
陣列的下標是從0開始的
陣列下標必須在指定範圍內使用,否則報panic:陣列越界。
go的陣列屬於值型別,在預設情況下是值傳遞,因此會進行值拷貝。陣列間不會相互影響。
如想在其他函式中,去修改原來的陣列,可以使用引用傳遞(指標方式)。
長度是陣列型別的一部分,在傳遞函式引數時需要考慮陣列的長度。 切片
切片的基本介紹
切片的英文是slice
切片是陣列的乙個引用,因此切片是引用型別,在進行傳遞時,遵守引用傳遞的機制。
切片的使用和陣列類似,遍歷切片、訪問切片的緣故和求切片長度len(slice)都一樣。
切片的長度時可以變化的,因此切片時乙個可以動態變化陣列。
切片定義的基本語法:var 變數名 型別
切片使用的三種方式
// 通過陣列建立切片
var arr1 =
[...
]int
var s1 = arr1[0:
2]// make建立切片
// var 切片名 type = make(type,len,[cap])
var s2 [
]int
=make([
]int,3
,5)// 直接賦值
var s3 [
]int=[
]int
方式1和方式2的區別(面試)方式1是直接引用陣列,這個陣列是事先存在的,程式設計師是可見的。
方式2是通過make來建立切片,make也會建立乙個陣列,是由切片在底層進行維護,程式設計師是不可見。
string 與 slice
string底層是乙個byte陣列,因此string也可以進行切片處理
陣列與切片
陣列陣列是值型別。取位址&變數名;
陣列的第乙個元素的位址,就是陣列的位址;
陣列的每個元素的位址間隔是依據陣列的型別決定,比如int64-》8 interweb2-》4
四種陣列初始化方式
var numsarray01 [3]
int=[3
]int
var numsarray02 =[3
]int
var numsarray03 =
[...
]int
var numsarray04 =[3
]string
fmt.
println
(numsarray01)
fmt.
println
(numsarray02)
fmt.
println
(numsarray03)
fmt.
println
(numsarray04)
// 迴圈
for_
, value :=
range numsarray01
陣列的注意事項和細節
陣列是多個相同型別資料的組合,乙個陣列一旦宣告/定義了,其長度是固定的,不能動態變化。
var arr int 這時arr就是乙個slice切片。
陣列中的元素可以是任何資料型別,包括值型別和引用型別,但不能混用。
陣列建立後,如果沒有賦值,有預設值
使用陣列的步驟:
陣列的下標是從0開始的
陣列下標必須在指定範圍內使用,否則報panic:陣列越界。
go的陣列屬於值型別,在預設情況下是值傳遞,因此會進行值拷貝。陣列間不會相互影響。
如想在其他函式中,去修改原來的陣列,可以使用引用傳遞(指標方式)。
長度是陣列型別的一部分,在傳遞函式引數時需要考慮陣列的長度。 切片
切片的基本介紹
切片的英文是slice
切片是陣列的乙個引用,因此切片是引用型別,在進行傳遞時,遵守引用傳遞的機制。
切片的使用和陣列類似,遍歷切片、訪問切片的緣故和求切片長度len(slice)都一樣。
切片的長度時可以變化的,因此切片時乙個可以動態變化陣列。
切片定義的基本語法:var 變數名 型別
切片使用的三種方式
// 通過陣列建立切片
var arr1 =
[...
]int
var s1 = arr1[0:
2]// make建立切片
// var 切片名 type = make(type,len,[cap])
var s2 [
]int
=make([
]int,3
,5)// 直接賦值
var s3 [
]int=[
]int
方式1和方式2的區別(面試)方式1是直接引用陣列,這個陣列是事先存在的,程式設計師是可見的。
方式2是通過make來建立切片,make也會建立乙個陣列,是由切片在底層進行維護,程式設計師是不可見。
string 與 slice
string底層是乙個byte陣列,因此string也可以進行切片處理
Go基礎學習 陣列與切片
固定長度同一種資料型別元素的集合 陣列宣告 var a 2 int var 陣列名 長度 存放的型別 陣列初始化 1,使用初始化列表來設定陣列元素的值 var a 3 int 陣列會初始化為int型別的零值 var b 3 int 使用指定的初始值完成初始化 2,使用指定索引值的方式來初始化陣列 c...
go陣列與切片
go陣列 陣列宣告 var variable name size variable type eg var balance 10 float32 陣列初始化 var balance 5 float32 初始化陣列中 中的元素個數不能大於 中的數字。如果忽略 中的數字不設定陣列大小,go 語言會根據元...
go陣列與切片
陣列是具有相同唯一型別的一組長度固定的資料項序列,這種型別可以是任意的原始型別,例如整形,字元型或者自定義型別。陣列長度必須是乙個常量的表示式,並且是乙個非負整數。陣列元素可以用個索引累讀取,陣列長度最大為2gb。宣告格式為 var identifier len type 複製 例如 var arr...