Expand description
从函数返回一个值。
return
标志着函数中执行路径的结束:
fn foo() -> i32 {
return 3;
}
assert_eq!(foo(), 3);
Run当返回值是函数中的最后一个表达式时,就不需要写 return
。
在这种情况下,将省略 ;
:
fn foo() -> i32 {
3
}
assert_eq!(foo(), 3);
Runreturn
会立即从函数返回 (是一个提前返回):
use std::fs::File;
use std::io::{Error, ErrorKind, Read, Result};
fn main() -> Result<()> {
let mut file = match File::open("foo.txt") {
Ok(f) => f,
Err(e) => return Err(e),
};
let mut contents = String::new();
let size = match file.read_to_string(&mut contents) {
Ok(s) => s,
Err(e) => return Err(e),
};
if contents.contains("impossible!") {
return Err(Error::new(ErrorKind::Other, "oh no!"));
}
if size > 9000 {
return Err(Error::new(ErrorKind::Other, "over 9000!"));
}
assert_eq!(contents, "Hello, world!");
Ok(())
}
Run