我正在关注Zig 中关于“comptime”的这篇博文。
以下行不再在 Zig 中编译0.6.0。
const user_input = try io.readLineSlice(buf[0..]);
Run Code Online (Sandbox Code Playgroud)
下面是完整的功能:
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);
}
Run Code Online (Sandbox Code Playgroud)
当前版本(获取用户输入)中的等效项是什么?
Cri*_*ino 10
您可以使用该方法readUntilDelimiterOrEof的stdin替代:
const stdin = std.io.getStdIn().reader();
Run Code Online (Sandbox Code Playgroud)
pub fn readUntilDelimiterOrEof(self: @TypeOf(stdin), buf: []u8, delimiter: u8) !?[]u8
Run Code Online (Sandbox Code Playgroud)
所以,代码可以是:
fn ask_user() !i64 {
const stdin = std.io.getStdIn().reader();
const stdout = std.io.getStdOut().writer();
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);
}
}
Run Code Online (Sandbox Code Playgroud)
另请参阅:Zig 0.7.0 文档。
| 归档时间: |
|
| 查看次数: |
1138 次 |
| 最近记录: |