Zig 入門 #9 - Switch

2022-05-12  /  ZigProgramming

ziglearn.org を参考に Zig の基本を一通りさらってみます。今回は Chapter 1 - Basics | ziglearn.org からSwitch について。

Switch

参考: Switch

switch の使い方は以下のようになります。

const a: i8 = 5;

switch (a) {
    0...4 => std.log.info("4以下", .{}),
    5,6 => std.log.info("5か6", .{})
    else => std.log.info("else", .{}),
}

const b = switch (a) {
    0 => 0,
    1 => 1,
    else => a * 2,
};

今回確認したコードは以下の通りです。

const a: i8 = 5;

switch (a) {
    // ... は Range を表す。両端の値は含まれる。0 以上 5 以下
    0...5 => std.log.info("0 以上 5 以下", .{}),
}

// 以下は 5 の場合の処理がないのでコンパイルエラーになる
// switch (a) {
//     0...4 => std.log.info("5未満", .{})
// }

switch (a) {
    // 分岐の区切りは ,
    0...4 => std.log.info("5未満", .{}),
    else => std.log.info("else", .{}), // <- 最後の分岐のコンマも許容される、なくてもよい
}

// 式にもなる
const b = switch (a) {
    0 => 0,
    1 => 1,
    else => a * 2,
};

std.log.info("b: {}", .{b});