Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 键入'std::result::result<;u8,标准::io::错误>;`不能取消引用 使用std::env; 使用std::fs::File; 使用std::io::{BufReader,BufWriter,Read,Write}; fn main(){ 让args=env::args().collect::(); let file=file::open(&args[1])。expect(“未找到文件”); 让reader=BufReader::new(文件); 让mut writer=BufWriter::new(std::io::stdout()); 对于reader.bytes()中的{ writer.write(&[*it]); } }_Rust - Fatal编程技术网

Rust 键入'std::result::result<;u8,标准::io::错误>;`不能取消引用 使用std::env; 使用std::fs::File; 使用std::io::{BufReader,BufWriter,Read,Write}; fn main(){ 让args=env::args().collect::(); let file=file::open(&args[1])。expect(“未找到文件”); 让reader=BufReader::new(文件); 让mut writer=BufWriter::new(std::io::stdout()); 对于reader.bytes()中的{ writer.write(&[*it]); } }

Rust 键入'std::result::result<;u8,标准::io::错误>;`不能取消引用 使用std::env; 使用std::fs::File; 使用std::io::{BufReader,BufWriter,Read,Write}; fn main(){ 让args=env::args().collect::(); let file=file::open(&args[1])。expect(“未找到文件”); 让reader=BufReader::new(文件); 让mut writer=BufWriter::new(std::io::stdout()); 对于reader.bytes()中的{ writer.write(&[*it]); } },rust,Rust,为什么会出现错误 无法取消引用类型'std::result::result' 从 fn字节(自身)->字节,其中 自我:大小, 将此读取实例在其字节上转换为迭代器 返回的类型实现迭代器,其中项为Result。如果成功读取并删除某个字节,则生成的项正常 否则就错了。EOF映射到此迭代器返回None 只能取消引用实现的类型 use std::env; use std::fs::File; use std::io::{BufReader, BufWriter, Read, Write}; fn m

为什么会出现错误

无法取消引用类型'std::result::result' 从

fn字节(自身)->字节,其中
自我:大小,
将此读取实例在其字节上转换为迭代器

返回的类型实现迭代器,其中项为Result。如果成功读取并删除某个字节,则生成的项正常 否则就错了。EOF映射到此迭代器返回None

只能取消引用实现的类型

use std::env;
use std::fs::File;
use std::io::{BufReader, BufWriter, Read, Write};

fn main() {
    let args = env::args().collect::<Vec<String>>();
    let file = File::open(&args[1]).expect("file not found");
    let reader = BufReader::new(file);
    let mut writer = BufWriter::new(std::io::stdout());
    for it in reader.bytes() {
        writer.write(&[it.unwrap()]);
    }
}
使用std::env;
使用std::fs::File;
使用std::io::{BufReader,BufWriter,Read,Write};
fn main(){
让args=env::args().collect::();
let file=file::open(&args[1])。expect(“未找到文件”);
让reader=BufReader::new(文件);
让mut writer=BufWriter::new(std::io::stdout());
对于reader.bytes()中的{
writer.write(&[it.unwrap()]);
}
}

你到底想做什么
reader.bytes()
u8
上提供一个容易出错的迭代器,即项目为
Result
的迭代器。错误消息告诉您,
结果
无法取消引用。您至少需要
let it=it.unwrap()
或等效文件,但即使如此,您也会得到一个
u8
,它同样无法被引用。像
writer.writer(&[it.unwrap()])
这样的东西应该可以正常工作。它已经完成了!非常感谢。
use std::env;
use std::fs::File;
use std::io::{BufReader, BufWriter, Read, Write};

fn main() {
    let args = env::args().collect::<Vec<String>>();
    let file = File::open(&args[1]).expect("file not found");
    let reader = BufReader::new(file);
    let mut writer = BufWriter::new(std::io::stdout());
    for it in reader.bytes() {
        writer.write(&[it.unwrap()]);
    }
}