我正在尝试rust,我想为我的计时器创建一行打印。
我想用rust写的Python代码:
from time import sleep
for i in range(61):
print(i, end="r")
sleep(1)
这段代码在一行中打印秒数,从而更新
行的秒数。我试着用rust做这个:
use std::thread::sleep;
use std::time::Duration;
fn main() {
for i in 0..61 {
print!("{}r", i);
sleep(Duration::from_millis(1000));
}
}
Rust脚本不打印任何东西,但是python脚本会打印并更新它:当你运行它
$ python script.py
0
当它运行1秒
$ python script.py
1
当它运行2秒
$ python script.py
0
我试着删除" "从rust代码的一行开始,现在等待60秒,然后在一行中打印从0到61的数字:0123456789...%
我看不出python和rust代码有什么区别
Ruststdout
是缓冲的,这意味着如果你不打印换行符并希望它输出一些东西,你需要刷新它。
你可以这样写:
use std::thread::sleep;
use std::time::Duration;
use std::io::{self, Write};
fn main() {
for i in 0..61 {
print!("{}r", i);
match io::stdout().flush() {
Ok(_) => {},
Err(_) => std::process::exit(1)
}
sleep(Duration::from_millis(1000));
}
}
try println
for i in 1..10{
println!("{}",i);
sleep(Duration::from_millis(1000));
}