如何从 Zig 中的字符串解析整数?

JPl*_*lus 5 string integer zig

在 Zig 中从字符串解析整数并指定结果整数类型的最佳方法是什么?

const foo = "22";
Run Code Online (Sandbox Code Playgroud)

例如,我如何转换foo为?i32

JPl*_*lus 8

查看Zig 的标准库文档后,我发现了std.fmt.parseInt,它允许您将字符串解析为任何大小的整数,有符号或无符号(例如 i32、u64)。

例子:

const foo = "22";

const integer = try std.fmt.parseInt(i32, foo, 10);
Run Code Online (Sandbox Code Playgroud)

  • 请使用“try”而不是“catch unreachable”。仅当您正在解析已知字符串时才可以使用它;你可以直接写“const integer = 22;”。但是,如果有人正在寻找解析数字的方法,他们可能会遇到未知的字符串,并且需要正确处理错误。这个答案只会让他们感到困惑。 (5认同)