二、切片
//常用以下三種方式來定義
var array1 =[5
]int
//在宣告時沒有為其指定初值,所以陣列內的值被初始化為型別的零值。
var array2 =[5
]int
//使用顯示的方式為陣列定義初值。
var array3 =[5
]int
//通過下標的方式為下標為3的位置賦上了初值10,即此陣列為0 0 0 10 0
對上面array1賦值
for i :=
0; i <
len(array1)
; i++
遍歷陣列
for index, value :=
range array1
//輸出陣列array的下標及對應的值
var arr4 =[5
][5]
int,,}
//對5*5的陣列賦值,且只是第一行和第二行有值,其餘為0
由於go語言傳遞陣列是通過拷貝,所以當陣列很大時便會非常佔記憶體,通常採用1:傳遞陣列的指標2:傳遞切片
指標陣列:陣列裡面存放的是指標
func
main()
for i :=
0; i <
5; i++
fmt.
println()
test1
(a)for i :=
0; i <
5; i++
}func
test1
(a [5]
*int
) fmt.
println()
}
陣列指標:即指向陣列的指標
func
main()
func
test
(aptr *[5
]int
)
切片解決了陣列長度固定的短板,其操作與陣列類似,但是長度是可變的
//方法一
var s1 =
int//空切片
//方法二
var s2 =
int//定義長度為3的切片
//方法三
var s3 =
make([
]int,5
)//方法四
var s4 =
make([
]int,5
,10)
擴充
func
main()
b := a[1:
3]//取a的2,3
b =(b,4
) b =
(b,5
) b =
(b,6
) b =
(b,7
) fmt.
println
(a) fmt.
println
(b)}
拼接
func
main()
b := a[1:
3]fmt.
println
(b) a =
(a, b...
) fmt.
println
(a)}
切片複製
func
main()
b :=
make([
]int,3
)copy
(b, a)
fmt.
println
(a) fmt.
println
(b)}
q:宣告b切片時,其長度比a切片長,複製結果是怎麼樣的?
a: 會將多餘的部分賦值為0
q:宣告b切片時,其長度比a切片短,複製結果是怎麼樣的?
a:b只取定義的長度
q:宣告b切片時,其長度被定義為0,那麼呼叫copy函式會報錯嗎?
a:不會,此時b為空切片
學習第五天
清楚測試用例是什麼 測試用例的重要性 有效性 測試用例是測試人員測試過程中的重要參考依據,準確的測試用例的計畫 執行和跟蹤是 測試的有效性的有力證明 可復用性 設計良好的測試用例可以重複執行,能節約時間,提高測試效率 易組織性 清晰詳細的測試用例能夠便於測試執行的開展 可評估性 測試用例的通過率是檢...
Java學習第五天
當類載入器需要載入某個類時,類載入器會在載入初始化後生成該類的乙個類物件 class 用於描述該類的元資料資訊等。在其後的連線過程中,會初始化該類的靜態成員 變數或靜態初始化器 靜態初始化變數和初始化器按照先後順序執行初始化。例如 static int a 10 static 這樣初始化後a 100...
C 學習第五天
c 中的is和as is可用於任何型別。例如 int a 10 a is object true object o 10 o is int true o person o is int false as右側型別必須為引用型別或可空型別。as操作如果失敗,不丟擲異常,而是返回null 結構 struc...