Почему это принимается?
const std = @import("std");
pub fn main() !void {
const outcome =
std.debug.print("Hello, world\n", .{});
_ = outcome;
}
Результат std.debug.print() имеет тип void, но присваивание этого результата переменной outcome не вызывает никаких возражений у Zig.
Я столкнулся с этим, работая над проектом, когда ошибочно решил, что API сторонней библиотеки возвращает значение, хотя на самом деле его не было. В конце концов попытка отформатировать результат в строку через {s} вызвала ошибку компилятора, но добраться от неё до исходного неверного предположения удалось не сразу.
В каких случаях хранить void в переменной бывает полезно?