Rust 模式匹配示例详解

 更新时间:2022年10月21日 14:21:10   作者:昆吾kw  
这篇文章主要为大家介绍了Rust 模式匹配示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

函数

今天学习的内容是 Rust 中的函数

函数,和 if 条件控制,while、loop、for 循环控制,在底层都是使用跳转实现的,所以函数也属于流程控制的一种。可以这样理解,当函数执行时,程序的执行主体就进入了函数内部,当函数执行完毕,则又返还回去,这就是函数的流程控制。

Rust 中使用函数和 Typescript 比较像,需要关注参数的类型返回值的类型, 再就是有一点 Rust 语言的特性,返回值可以是一个表达式。

参数的类型注解和变量是一样的,在参数名为使用冒号 : 指定类型,返回值的类型使用箭头 -> 表示。如果函数没有返回值,则可以省略。

斐波那契数列函数

比如一个斐波那契数列函数:

fn fibonacci(n: u64) -> u64 {
    if n < 2 {
        return n;
    }
    return fibonacci(n - 1) + fibonacci(n - 2);
}
fn main() {
    println!("斐波那契数列的第 10 项是:{:?}", fibonacci(10)); // 55
}

前面说过,Rust 是基于表达式的,函数中也能用到这个特性。一般函数都会使用 return 来结束函数的调用和返回值。

Rust 中的函数,如果没有 return,默认会将最后一个表达式的值作为函数的返回值,所以上面的斐波那契数列函数可以写成:

fn fibonacci(n: u64) -> u64 {
    if n < 2 {
        n
    } else {
        fibonacci(n - 1) + fibonacci(n - 2)
    }
}

函数没有返回值时,可以省略返回值的类型,或者写成 ()

fn log1(message: &str) {
    println!("{}", message);
}
fn log2(message: &str) -> () {
    println!("{}", message);
}
fn main() {
    let message = "测试";
    log1(message);
    log2(message);
}

小结

本文介绍了 Rust 中的函数类型,从程序执行的角度看,它也属于流程控制的一种。但更多时候我们只把函数看作是对一个功能的封装。Rust 具备函数式编程的特性,所以函数是 Rust 中的重中之重。

以上就是Rust 模式匹配示例详解的详细内容,更多关于Rust 模式匹配的资料请关注脚本之家其它相关文章!

相关文章

  • C++的替代:微软如何使用rust?

    C++的替代:微软如何使用rust?

    这篇文章主要介绍了微软如何使用rust的,帮助大家了解c++和rust这两门编程语言的联系与区别,感兴趣的朋友可以了解下
    2020-09-09
  • 如何使用rust实现简单的单链表

    如何使用rust实现简单的单链表

    实现单链表在别的语言里面可能是一件简单的事情,单对于Rust来说,绝对不简单,下面这篇文章主要给大家介绍了关于如何使用rust实现简单的单链表的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • Rust实现一个表达式Parser小结

    Rust实现一个表达式Parser小结

    这篇文章主要为大家介绍了Rust实现一个表达式Parser小结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 深入理解Rust中Cargo的使用

    深入理解Rust中Cargo的使用

    本文主要介绍了深入理解Rust中Cargo的使用,Cargo简化了项目的构建过程,提供了依赖项管理,以及一系列方便的工作流程工具,下面就来具体的介绍一下如何使用,感兴趣的可以了解一下
    2024-04-04
  • Rust之Rhai脚本编程的示例

    Rust之Rhai脚本编程的示例

    文章介绍了如何在Rust中使用Rhai库执行脚本,包括添加依赖、创建引擎、定义脚本、执行脚本并处理结果,示例展示了如何定义一个简单的函数并调用它,输出问候信息
    2025-02-02
  • 详解Rust中的所有权机制

    详解Rust中的所有权机制

    Rust 语言提供了跟其他系统编程语言相同的方式来控制你使用的内存,但拥有数据所有者在离开作用域后自动清除其数据的功能意味着你无须额外编写和调试相关的控制代码,这篇文章主要介绍了Rust中的所有权机制,需要的朋友可以参考下
    2022-10-10
  • Rust中的不安全代码详解

    Rust中的不安全代码详解

    这篇文章主要为大家介绍了Rust中的不安全代码详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 从迷你todo 命令行入门Rust示例详解

    从迷你todo 命令行入门Rust示例详解

    这篇文章主要为大家介绍了从一个迷你todo命令行入门Rust的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 详解Rust中的workspace

    详解Rust中的workspace

    这篇文章主要向大家介绍Rust中的workspace,主要内容包括基础应用、实用技巧、原理机制等方面,这个概念在Rust中是通用的,只不过maven换成了cargo,而模块变成了crate,下面跟着小编通过一个例子给大家介绍下
    2022-03-03
  • 用rust 写一个jar包 class冲突检测工具

    用rust 写一个jar包 class冲突检测工具

    这篇文章主要介绍了用rust 写一个jar包 class冲突检测工具 的相关资料,需要的朋友可以参考下
    2023-05-05

最新评论