Zig 入門 #2 - if

2022-04-11  /  ZigProgramming

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

if

参考: if

基本的な構文は以下のようになります。

if (conditionA) {
  // ...
} else if (conditionB) {
  // ...
} else {
  // ...
}

ifelse ifの条件部分は括弧が必要で中には任意の式を利用可能です(もちろん真偽値を返す必要があります)。またif自体も式になるので、以下のようにも記述できます。

var v = if (condition) valueA else valueB;

if は他にもオプショナルな値の unwrap(でいいのかな)やエラーハンドリングとも合わせて使用するための構文があるようです。詳しくは後で出てくると思います。

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

    const a = true;
    if (a) {
        std.log.info("true", .{});
    }

    const b = false;
    if (!b) {
        std.log.info("not false", .{});
    }

    const i = 1;
    if (i == 0) {
        // unreached
    } else if (i == 1) {
        std.log.info("else if", .{});
    } else {
        // unreached
    }

    // if は式なので値を返すことができる
    const j = if (i == 0) 10 else 20;
    std.log.info("{}", .{j});