做社交的招聘网站,当阳网站建设,伙购网官方网站,网上快速赚钱方法一、Rust #xff1f;运算符
#xff1f;运算符#xff1a;传播错误的一种快捷方式。 如果Result是Ok#xff1a;Ok中的值就是表达式的结果#xff0c;然后继续执行程序。 如果Result是Err#xff1a;Err就是整个函数的返回值#xff0c;就像使用了return
#xff…一、Rust 运算符
运算符传播错误的一种快捷方式。 如果Result是OkOk中的值就是表达式的结果然后继续执行程序。 如果Result是ErrErr就是整个函数的返回值就像使用了return
运算符只能用于返回Result的函数。
运算符与main函数 main函数返回类型是 main函数的返回类型也可以是ResultT,E Box是trait对象简单理解“任何可能的错误类型”
二、Rust读写txt文件
Rust可以对txt文件读、写、创建、添加、打开操作。
use std::fs::{self, OpenOptions};let file OpenOptions::new().read(true).write(true).create(true).append(true).open(filepath)?;三、Rust实例测试
main.rs
use std::fs::{self, OpenOptions};
use std::io::{BufRead, BufReader, BufWriter, Write};fn main() - Result(), Boxdyn std::error::Error {let filepath test1.txt;let filepath2 test2.txt;let str read_file_string(filepath);println!({:#?}, str);let vec read_file_vec(filepath);println!({:#?}, vec);read_file_buffer(filepath)?;write_file_buffer(filepath2)?;Ok(())
}//将整个文件作为字符串读取
fn read_file_string(filepath: str) - ResultString, Boxdyn std::error::Error {let data fs::read_to_string(filepath)?;Ok(data)
}//将整个文件作为Vector读取
fn read_file_vec(filepath: str) - ResultVecu8, Boxdyn std::error::Error {let data fs::read(filepath)?;Ok(data)
}//BufReader按行读取
fn read_file_buffer(filepath: str) - Result(), Boxdyn std::error::Error {let file OpenOptions::new().read(true).open(filepath)?;let reader BufReader::new(file);//按行读取for line in reader.lines() {let str: String line.unwrap();println!({}, str);}Ok(())
}//BufWriter带缓冲写入
fn write_file_buffer(filepath: str) - Result(), Boxdyn std::error::Error {let file OpenOptions::new().create(true).append(true).open(filepath)?;let mut reader BufWriter::new(file);// 带缓冲写入reader.write(bhello\n)?;reader.write(bword\n)?;//确保缓冲中的内容全部写入文件reader.flush()?;Ok(())
}其中test1.txt文件内容如下
白日依山尽
黄河入海流。运行效果如下 生成的test2.txt文件内容如下
hello
word