函数的返回需要确定

fn add(a:i32,b:i32) ->i32{
    a + b
}
fn main() {
    println!("{}",add(1, 2));
}

在Rust中, fn 用来定义函数。Rust不会自动推断函数的返回类型,故 ->i32 只在函数定义的时候需要。一般定义变量时,

let x = 10;
let mut y =10;

Rust会自动推断。

-> i32 一定要吗?为什么函数必须写? 因为 函数是对外接口。 如果不写,那么Rust就不知道返回什么,他不会选择自己推断,而是让我们自己选择。如果不写返回值,就会返回() () 到底是什么? 答案:返回 (),表示“我完成了,但没有有用的值” 常见整数类型对照表:

类型 含义 范围
i32 有符号 32 位 -21 亿 ~ +21 亿
u32 无符号 32 位 0 ~ 42 亿
i64 有符号 64 位 很大
i128 有符号 128 位 非常大
usize 平台相关 用于索引
这是Rust 的整数类型系统,非常严谨。
因为 Rust 追求:
  • 性能

  • 内存可控

  • 行为确定

你用什么类型,Rust 就给你什么行为。

  • ii32
  • 索引必须是 usize 必须写成:
fn main() {
    let v = vec![1, 2, 3];
    let i: usize = 0;
    v[i];
}

这是Rust在防止写Bug。

请我喝[茶]~( ̄▽ ̄)~*

支付宝

支付宝

贝宝

贝宝

微信支付

微信支付