fn main() { let result = divide(4.0, 2.0); if result.is_ok() { println!("Result: {}", result.unwrap()); } else { println!("Error: {}", result.unwrap_err()); } } unwrap 和 unwrap_err 方法 unwrap 和 unwrap_err 方法分别从 Result 中获取成功值或错误值。如果 Result 不是预期...
fn main() { match divide(10, 2) { Ok(result) => println!("Result: {}", result), Err(e) => println!("Error: {}", e), } } 在这个例子中,divide函数使用Result类型返回除法操作的结果。如果除数为零,返回Err;否则返回Ok包裹的商。 Option类型 与Result不同,Option类型用于表示值可能存在或不...
可以使用 match 表达式处理 Result 的结果,相当于其他语言的 try/catch。使用方式如下 use std::io::Error; fn main() { let path = "/tmp/file.txt"; read_file(path); // 没有处理返回值,此时编译会报警 } fn read_file(path: &str) -> Result<String, Error> { std::fs::read_to_string(pa...
("Error: {}", e), }}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.read_file函数接受文件路径,并返回Result<String, std::io::Error>错误。如果文件读取或打开操作失败,函数返回Err值。否则,函数返回Ok值。在main函数中,match语句处理Result值,并根据文件操作的情况打印输出结果。2.O...
实例use std::io; use std::io::Read; use std::fs::File; fn read_text_from_file(path: &str) -> Result<String, io::Error> { let mut f = File::open(path)?; let mut s = String::new(); f.read_to_string(&mut s)?; Ok(s) } fn main() { let str_file = read_text_fro...
最本质的区别是:Golang的错误处理是“积类型”,而的错误处理Rust 是“和类型”。Rust 的 Result 是一种 Monad,从理论上就决定了它比 Go 的多值返回要强大的多。Rust 的错误处理方式是利用了 Monad 概念与控制流操作符,而 Go 的多值返回更像是作者固执己见的设计。 Go 的
fnmain(){ letf1=File::open("hello.txt").unwrap(); letf2=File::open("hello.txt").expect("Failed to open."); } 这段程序相当于在 Result 为 Err 时调用 panic! 宏。两者的区别在于 expect 能够向 panic! 宏发送一段指定的错误信息。
ErrorKind的成员是各种io错误原因,比如NotFound,PermissionDenied… 因此如果函数返回io::Result,失败时返回的是io::Error时,就可以调用kind方法,进一步匹配不同的错误原因进行不同处理。 usestd::fs::File;usestd::io::ErrorKind;fnmain() {letf = File::open("hello.txt").unwrap_or_else(|err| {matcher...
->Result<(),io::Error>{letmut file=File::open("file.txt")?;letmut contents=String::new();file.read_to_string(&mut contents)?;println!("文件内容:{}",contents);Ok(())}fnmain(){matchread_file(){Ok(_)=>println!("读取文件成功"),Err(error)=>println!("读取文件失败:{}",error)...
read_file函数接受文件路径,并返回Result错误。如果文件读取或打开操作失败,函数返回Err值。否则,函数返回Ok值。在main函数中,match语句处理Result值,并根据文件操作的情况打印输出结果。 Option类型 Option类型是表示值存在或不存在的内置类型。Option类型有两个变体。Some表示值,None表示没有值。