如何在编译时在Zig中连接两个字符串文字?

如何在 Zig 编译时连接以下长度已知的字符串?

const url = "https://github.com/{}/reponame";
const user = "Himujjal";
const final_url = url + user; // ??

回答

数组连接运算符,用于两个 comptime-known 字符串:

const final_url = "https://github.com/" ++ user ++ "/reponame";

std.fmt.comptimePrint 用于 comptime-known 字符串和数字以及其他可格式化的东西:

const final_url = comptime std.fmt.comptimePrint("https://github.com/{}/reponame", .{user});

运行时,分配:

const final_url = try std.fmt.allocPrint(alloc, "https://github.com/{}/reponame", .{user});
defer alloc.free(final_url);

运行时,无分配,具有已知的最大长度:

var buffer = [_]u8{undefined} ** 100;
const printed = try std.fmt.bufPrint(&buffer, "https://github.com/{}/reponame", .{user});


以上是如何在编译时在Zig中连接两个字符串文字?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>