rust中的“箭头函数” -;和=;的区别

Posted ponponon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rust中的“箭头函数” -;和=;的区别相关的知识,希望对你有一定的参考价值。

初学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));
}

以上是关于rust中的“箭头函数” -;和=;的区别的主要内容,如果未能解决你的问题,请参考以下文章

ES6——函数-箭头函数

箭头函数

箭头函数

箭头函数

将 Vec<String> 转换为 Rust 中的 &str 切片?

Vue ES6箭头函数使用总结