👻

【Zig】ArrayList で文字列を連結する

2024/05/01に公開

ArrayList を利用することで複数の文字列を連結させることができる

const std = @import("std");
const expect = std.testing.expect;
const print = std.debug.print;

pub fn main() !void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    const allocator = gpa.allocator();
    var list = std.ArrayList(u8).init(allocator);
    defer list.deinit();

    try list.append(0xe3);
    try list.append(0x81);
    try list.append(0x82);
    try list.appendSlice("いう");

    print("{s}\n", .{list.items});
}

テストコードは次のとおり

test.zig
const std = @import("std");
const eql = std.mem.eql;
const expect = std.testing.expect;

test "arraylist" {
    var list = std.ArrayList(u8).init(std.testing.allocator);
    defer list.deinit();
    try list.append(0xe3);
    try list.append(0x81);
    try list.append(0x82);
    try list.appendSlice("いう");

    try expect(eql(u8, list.items, "あいう"));
}

Discussion