gpt4 book ai didi

rust - 不能取消引用 `std::result::Result`类型

转载 作者:行者123 更新时间:2023-12-03 11:44:48 25 4
gpt4 key购买 nike

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]);
}
}
为什么这会产生错误?
type `std::result::Result<u8, std::io::Error>` cannot be dereferenced

最佳答案

documentation

fn bytes(self) -> Bytes<Self> where
Self: Sized,

Transforms this Read instance to an Iterator over its bytes.

The returned type implements Iterator where the Item is Result<u8,io::Error>. The yielded item is Ok if a byte was successfully read andErr otherwise. EOF is mapped to returning None from this iterator.


只能取消实现 std::ops::Deref的类型。
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()]);
}
}

关于rust - 不能取消引用 `std::result::Result<u8, std::io::Error>`类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63648649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com