Java教程

【金秋打卡】第7天 Rust 函数

本文主要是介绍【金秋打卡】第7天 Rust 函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程名称:领略Rust之美,挑战双高语言

课程章节: 第4章 Rust 流程控制 4-10 函数与方法

课程讲师:叶枭

课程内容:

今天学习的内容是 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 中的重中之重。
图片描述

这篇关于【金秋打卡】第7天 Rust 函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!