我用Rust 1.0 alpha编写了一个非常简单的cat函数.

use std::io;

fn main(){
    let mut reader = io::stdin();
    loop {
        let input = reader.read_line().ok().expect("Failed to read line");
        print!("{}", input);
    }
}

当我编译它时,我得到以下警告:

bindings.rs:5:26: 5:35 warning: use of unstable item, #[warn(unstable)] on by default
bindings.rs:5         let mut reader = io::stdin();
                                       ^~~~~~~~~
bindings.rs:6:28: 6:39 warning: use of unstable item, #[warn(unstable)] on by default
bindings.rs:6         let input = reader.read_line().ok().expect("Failed to read line");
                                         ^~~~~~~~~~~

有没有办法纠正这些警告?

推荐答案

对于1.0版本,Rust希望提供一个非常有力的保证,保证entire life of the language个用户可以使用该语言和标准库的哪些功能.这可不是一件容易的事!

新的、未经测试的或只是未完全完成的特性将被标记为 solidity 属性,并且您将获得won't be able to use unstable features in the beta or release.您只能在夜间构建中使用它们.

然而,在alpha年期间,它们只是警告.如果你需要在alpha中使用一个功能,并且它被标记为unstable,那么你需要确保它在beta测试之前变得稳定(或者你找到一个替代解决方案)!

在本例中,整个IO子系统正在经历最后一刻的更改,因此被标记为不稳定.

Edit 1

PR 21543个国家登陆时,目前被称为std::io的世界将更名为std::old_io.新编写的代码将进入std::io,旧版本将被弃用.

Rust相关问答推荐

为什么我需要在这个代码示例中使用&

如何装箱生命周期相关联的两个对象?

在不重写/专门化整个函数的情况下添加单个匹配手臂到特征的方法?

使用极点数据帧时,找不到枚举结果的方法lazy()

为昂贵的for循环制作筛子

RUST应用程序正在退出,错误代码为:(退出代码:0xc0000005,STATUS_ACCESS_VIOLATION)

通过RabbitMQ取消铁 rust 中长时间运行的人造丝任务的策略

try 从标准输入获取用户名和密码并删除 \r\n

将多维数组转换为切片

Rust与_有何区别?

从Rust 的临时文件中创建引用是什么意思?

为什么 Rust 的临时值有时有参考性有时没有?

实现泛型的 Trait 方法中的文字

按下 Ctrl + C 时优雅地停止命令并退出进程

错误:将自定义 proc_macro 与用Rust 的宝贝编写的属性一起使用时,无法在此范围内找到属性

在每个循环迭代中删除borrow

为什么我可以同时传递可变和不可变引用?

提取 struct 生成宏中字段出现的索引

如何从 many0 传播 Nom 失败上下文?

为什么这里需要类型注解?