陣列 Array 是每個語言都有的基本功能,而切片 Slices 則是現代語言常見的陣列參照。
陣列
基本
陣列在編譯期確定長度、單一型別。宣告時可以省略長度,Zig 會根據初值自行推斷。
長度
要得知陣列長度(元素數量),可以直接使用 array.len
欄位。
賦值
如果是以 var
宣告的話,可以為元素重新賦值。
邊界檢查
Zig 會進行邊界檢查,如果 Index 超出陣列範圍,引發編譯錯誤。
切片
基本
切片是對於一個陣列的指標和長度資訊。它是一個陣列的一部分,由於是指標,不實際儲存陣列數值,適合傳遞。切片也可以透過 slice.len
取代長度。
它的語法是 array[n..m]
,其中 n
是開始索引,m
是結束索引(不包含)。所以 array[0..3]
就是取第 0~2。如果要取到最後的話,m
可以省略,也就是 array[n..]
。
型別
傳遞
因為切片只是指標,所以很適合傳遞,而且它帶有長度資訊,所以可以不必另外傳遞長度。
字串
字串實際上是 u8
切片。
參考
本文以 Zig 0.13.0
為主。並同時發佈在:
留言可能不會立即顯示。若過了幾天仍未出現,請 Email 聯繫:)