初学rust,相信你会像我一样被rust庞杂的语法震惊到

下面的代码看起来像是javaJavaScript的结合体

use std::io::prelude::*;
use std::fs::OpenOptions;

fn main() -> std::io::Result<()> {
   
    let mut file = OpenOptions::new()
            .append(true).open("D:\\text.txt")?;

    file.write(b" APPEND WORD")?;

    Ok(())
}
fn main() {
    let mut v = vec![1, 2, 4, 8];
    println!("{}", match v.get(0) {
        Some(value) => value.to_string(),
        None => "None".to_string()
    });
}

关于 => 的用法

rust作为一门只有6岁的新语言,从jsjavapython等高级语言中吸收了很多语法

=>JavaScript中表示箭头函数,是一种为了为了在定义函数时省略function关键字的语法糖

而在rust语言中=>是“匹配准备语法的部分”。

用通俗一点的话来讲就是,在使用match语句的时候,对于每一种不同的情况进行匹配,如果匹配成功了之后,就执行这个=>符号后面所对应的那些代码。

参考链接:
TypeScript 函数
JavaScript初学者必看“箭头函数”

关于 -> 的用法

-> 表明的是函数的返回值类型

就像python里面的类型注释

fn max(array: &[i32]) -> i32 {
    let mut max_index = 0;
    let mut i = 1;
    while i < array.len() {
        if array[i] > array[max_index] {
            max_index = i;
        }
        i += 1;
    }
    return  array[max_index];
}



fn main() {
    let a = [2, 4, 6, 3, 1];
    println!("max = {}", max(&a));
}

universe_king
3.4k 声望678 粉丝