切片 (Slices)
切片是一个包含指针和长度的结构。它可以看作是数组的一个视图。切片是 Zig 中处理数组数据的首选方式,因为它们包含了边界检查信息。
创建切片
可以通过对数组或指针进行切片操作来创建切片。语法是 array[start..end]。
const array = [_]i32{ 1, 2, 3, 4, 5 };
const slice = array[1..4]; // { 2, 3, 4 }
注意:范围 start..end 是半开区间,即包含 start 但不包含 end。
字符串字面量与切片
字符串字面量可以被强制转换为常量字节切片 []const u8。
const hello: []const u8 = "hello";
哨兵终止切片 (Sentinel-Terminated Slices)
类似于数组,切片也可以由哨兵值终止。语法是 [:x]T。
const c_string: [:0]const u8 = "hello";