Я работал с зиглингами, и в последнем упражнении (#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';
}
Но упражнение, похоже, подразумевает, что есть способ сделать это в одной строке, используя оператор **
для генерации массива. Кто-нибудь знает как это сделать? Я просмотрел предыдущие упражнения и документацию, но не могу понять.
Упражнение советует инициализировать массив, а не срез.
Вы были близко. Правильная инициализация массива выглядит следующим образом:
var content = [_]u8{'A'} ** 64;
Вам также потребуется исправить другие строки в файле.
Вы имеете в виду
"A" ** 65
?