我正在关注Zig中有关“ comptime”的博客文章。
以下行不再在Zig中编译0.6.0
。
const user_input = try io.readLineSlice(buf[0..]);
以下是全部功能:
fn ask_user() !i64 {
var buf: [10]u8 = undefined;
std.debug.warn("A number please: ");
const user_input = try io.readLineSlice(buf[0..]);
return fmt.parseInt(i64, user_input, 10);
}
当前版本(获取用户输入)中的等效内容是什么?
您可以使用该方法readUntilDelimiterOrEof
的stdin
替代:
const stdin = std.io.getStdIn().inStream();
pub fn readUntilDelimiterOrEof(self: @TypeOf(stdin), buf: []u8, delimiter: u8) !?[]u8
因此,代码可以是:
fn ask_user() !i64 {
const stdin = std.io.getStdIn().inStream();
const stdout = std.io.getStdOut().outStream();
var buf: [10]u8 = undefined;
try stdout.print("A number please: ", .{});
if (try stdin.readUntilDelimiterOrEof(buf[0..], '\n')) |user_input| {
return std.fmt.parseInt(i64, user_input, 10);
} else {
return @as(i64, 0);
}
}
另请参阅:Zig 0.6.0文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句