If 表达式 (if)
Zig 的 if 是一个表达式,这意味着它可以返回一个值。
基本用法
if (a > b) {
x += 1;
} else {
x -= 1;
}
作为表达式
const x = if (a > b) 1 else 0;
如果作为表达式使用,两个分支必须返回兼容的类型。
处理 Optionals
if 表达式可以用于解包可选类型。
const optional_value: ?u32 = 10;
if (optional_value) |value| {
std.debug.print("Value is {}\n", .{value});
} else {
std.debug.print("Value is null\n", .{});
}
也可以捕获指针来修改 payload:
var optional_value: ?u32 = 10;
if (optional_value) |*value| {
value.* += 1;
}
处理 Error Unions
if 也可以用于处理错误联合。
if (functionReturningError()) |value| {
std.debug.print("Success: {}\n", .{value});
} else |err| {
std.debug.print("Error: {}\n", .{err});
}