Как инициализировать изменяемый массив в Zig?

Я работал с зиглингами, и в последнем упражнении (#107) мне нужно инициализировать срез массивом из 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';
}

Но упражнение, похоже, подразумевает, что есть способ сделать это в одной строке, используя оператор ** для генерации массива. Кто-нибудь знает как это сделать? Я просмотрел предыдущие упражнения и документацию, но не могу понять.

Вы имеете в виду "A" ** 65?

user459872 02.07.2024 08:57
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
1
122
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Упражнение советует инициализировать массив, а не срез.

Вы были близко. Правильная инициализация массива выглядит следующим образом:

var content = [_]u8{'A'} ** 64;

Вам также потребуется исправить другие строки в файле.

Другие вопросы по теме