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]); } }
为什么会出现错误 无法取消引用类型'std::result::result' 从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
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()]);
}
}