Zig 入門 #6 - Defer

2022-04-22  /  ZigProgramming

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

Defer

参考: Defer

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

defer statement;

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

fn defer_() void {
    std.log.info("enter", .{});
    {
        // このブロックを抜ける際に実行されるので enter の次に出力される
        defer std.log.info("defer1", .{});
    }
    // defer は後から定義されたものが先に実行されるので defer3 の次に出力される
    defer std.log.info("defer2", .{});

    // defer_ を抜ける際に実行されるので exit の次に出力される
    defer std.log.info("defer3", .{});

    std.log.info("exit", .{});
}

// 結果
// info: enter
// info: defer1
// info: exit
// info: defer3
// info: defer2