当前位置:网站首页>Rust从入门到精通06-函数
Rust从入门到精通06-函数
2022-08-11 08:16:00 【51CTO】
1、函数简介
①、Rust 的函数使用关键字 fn 开头,函数名称使用snake case规范风格(所有字母小写并使用下划线分隔);
②、可以有一系列的输入参数,可以有一个返回值;
③、函数返回可以使用 return 语句,也可以使用表达式(末尾不带分号);
④、函数也可以不写返回类型,这种情况下,编译器会认为返回类型是unit();
⑤、可执行程序的入口是 fn main();
⑥、调用函数时,Rust不关心函数定义在哪(前后都无所谓),只要定义了就行;
⑦、Rust 函数体内可以定义其它模块,比如静态变量、常量、函数、trait、类型等。
2、函数实例
3、函数返回值
需要注意语句和表达式的区别,表达式没有分号,有返回值。语句结尾有分号,没有返回值。
所以对于如下函数,如果函数体加上分号,则会报错:

把 x+y; 变成表达式即可(去掉末尾的分号)。
4、发散函数
Rust 支持一种特殊的发散函数(Diverging functions),它的返回类型是感叹号 !。 如果一个函数根本就不能正常返回,那么它就可以这样写:
发散函数的最大特点:可以被转换成任意一个类型。
在Rust 中,有下列情况返回类型都是 !:
1.panic! 以及基于它实现的各种函数/宏,比如unimplemented!、unreachable! 2.死循环loop{} 3.进程退出函数std::process::exit以及类似的libc 中的exec一类函数。
5、const fn
函数可以用 const 关键字修饰,这样的函数可以在编译阶段被编译器执行,返回值也被视为编译期常量。
需要注意的是:const 函数是在编译阶段执行的,因此相比普通函数有很多限制,并非所有的表达式和语句都可以在其中使用。
而且这个功能还没有完全稳定。
边栏推荐
猜你喜欢

2022-08-10:为了给刷题的同学一些奖励,力扣团队引入了一个弹簧游戏机, 游戏机由 N 个特殊弹簧排成一排,编号为 0 到 N-1, 初始有一个小球在编号 0 的弹簧处。若小球在编号为 i 的弹

tensorflow 基础操作1(tensor 基本属性 , 维度变换,数学运算)

租房小程序

Analysis of the Status Quo of Enterprise Server Host Reinforcement

The easiest trick to support quick renaming of various files

JUC Concurrent Programming

Nuget找不到包的问题处理

2022 China Soft Drink Market Insights

Active users of mobile banking grew rapidly in June, hitting a half-year high

C Primer Plus(6) 中文版 第1章 初识C语言 1.7 使用C语言的7个步骤
随机推荐
Kotlin算法入门求自由落体
Hibernate 的 Session 缓存相关操作
研发了 5 年的时序数据库,到底要解决什么问题?
Kotlin算法入门兔子数量优化及拓展
C语言-结构体
【实战系列】OpenApi设计规范
2022 China Soft Drink Market Insights
C Primer Plus(6) 中文版 第1章 初识C语言 1.7 使用C语言的7个步骤
Do you know the basic process and use case design method of interface testing?
一根网线两台电脑传输文件
Two startup methods and differences of Service
matplotlib
抽象类和接口
Active users of mobile banking grew rapidly in June, hitting a half-year high
初级软件测试工程师笔试试题,你知道答案吗?
tensorflow 基础操作1(tensor 基本属性 , 维度变换,数学运算)
Decrement operation in tf; tf.assign_sub()
Kotlin算法入门求完全数
Essential C# scripting skills for Unity developers
Kotlin算法入门计算素数以及优化