如何在 Zig 中初始化可变数组?

问题描述 投票:0回答:1

我一直在研究 ziglings,在上一个练习 (#107) 中,我必须将切片初始化为填充有“A”的 64 个字符数组。就这么多就好了。问题是这些值必须是可变的,以便我可以从文件中读取它。

我试过这个:

const content: []u8 = &[_]u8 {'A'} ** 64;

但我似乎无法生成可变的数组,并且出现错误

expected type '[]u8', but found'*const [64]u8' note: cast discards const qualifier

我想出的唯一有效的办法就是这个混乱:

var array: [64]u8 = undefined;
const content = array[0..array.len];
for (0..content.len) |i| {
    content[i] = 'A';
}

但是这个练习似乎暗示有一种方法可以在一行中完成它,使用

**
运算符来生成数组。有谁知道如何做到这一点?我已经浏览了之前的练习和文档,但我无法弄清楚。

arrays string slice zig
1个回答
0
投票

练习告诉您初始化一个数组,而不是一个切片。

你很接近。正确的数组初始化如下:

var content = [_]u8{'A'} ** 64;
您还需要修复文件中的其他行。

© www.soinside.com 2019 - 2024. All rights reserved.