diff --git a/codes/zig/chapter_array_and_linkedlist/array.zig b/codes/zig/chapter_array_and_linkedlist/array.zig index 52ebc8606..8c830cf4d 100644 --- a/codes/zig/chapter_array_and_linkedlist/array.zig +++ b/codes/zig/chapter_array_and_linkedlist/array.zig @@ -14,7 +14,7 @@ pub fn randomAccess(nums: []i32) i32 { return randomNum; } -// 扩展数组长度(运行时方法) +// 扩展数组长度 pub fn extend(mem_allocator: std.mem.Allocator, nums: []i32, enlarge: usize) ![]i32 { // 初始化一个扩展长度后的数组 var res = try mem_allocator.alloc(i32, nums.len + enlarge); @@ -25,26 +25,6 @@ pub fn extend(mem_allocator: std.mem.Allocator, nums: []i32, enlarge: usize) ![] return res; } -// 扩展数组长度(编译期方法A:初始化新数组并进行元素拷贝) -pub fn extendComptimeA(comptime nums: anytype, comptime enlarge: i32) [nums.len + enlarge]i32 { - // 初始化一个扩展长度后的数组 - var res = [_]i32{0} ** (nums.len + enlarge); - // 将原数组中的所有元素复制到新数组 - for (nums) |num, i| { - res[i] = num; - } - // 返回扩展后的新数组 - return res; -} - -// 扩展数组长度(编译期方法B: 通过数组拼接运算符“++”) -pub fn extendComptimeB(comptime nums: anytype, comptime enlarge: i32) [nums.len + enlarge]i32 { - // 数组拼接操作 - var res = nums ++ [_]i32{0} ** enlarge; - // 返回拼接后的新数组 - return res; -} - // 在数组的索引 index 处插入元素 num pub fn insert(nums: []i32, num: i32, index: usize) void { // 把索引 index 以及之后的所有元素向后移动一位 @@ -104,7 +84,7 @@ pub fn main() !void { var randomNum = randomAccess(&array); std.debug.print("\n在 nums 中获取随机元素 {}", .{randomNum}); - // 长度扩展(运行时方法) + // 长度扩展 var known_at_runtime_zero: usize = 0; var nums: []i32 = array[known_at_runtime_zero..array.len]; var mem_arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); @@ -113,14 +93,6 @@ pub fn main() !void { nums = try extend(mem_allocator, nums, 3); std.debug.print("\n将数组长度扩展至 8 ,得到 nums = ", .{}); inc.PrintUtil.printArray(i32, nums); - // { - // // 长度扩展(编译期方法) - // comptime var array_comptime = [_]i32{ 1, 3, 2, 5, 4 }; - // var nums_comptime = extendComptimeA(array_comptime, 3); - // // var nums_comptime = extendComptimeB(array_comptime, 3); - // std.debug.print("\n将数组长度扩展至 8 ,得到 nums_comptime = ", .{}); - // inc.PrintUtil.printArray(i32, &nums_comptime); - // } // 插入元素 insert(nums, 6, 3);