rust 语句与表达式 以及奇妙返回值

语句与表达式

rust中,分号结尾的是语句,没有分号结尾的是表达式

表达式会进行求值,然后返回一个值

函数也是一个表达式

如果一个表达式不返回任何值,那么就会返回()


rust中一个妙妙类型叫单元类型,其表示为(),对就是一对括号,唯一的值也是 ()。

谈谈奇妙的返回值

1. 单元类型()或者说无返回值

用途

做函数的返回值

震撼我一整年,fn main()中的()main函数的返回值。

你不能说 main 函数无返回值,因为没有返回值的函数在 Rust 中是有单独的定义的:发散函数( diverge function ),顾名思义,无法收敛的函数。

map中的占位符

你可以用 () 作为 map 的值,表示我们不关注具体的值,只关注 key。 这种用法和 Go 语言的 struct{} 类似,可以作为一个值用来占位,但是完全不占用任何内存。


2. 发散函数 !

又一个逆天语法

当用!作函数返回类型的时候,表示该函数永不返回( diverge function ),特别的,这种语法往往用做会导致程序崩溃的函数:

fn dead_end() -> ! {
  panic!("你已经到了穷途末路,崩溃吧!");
}
posted @ 2023-04-05 01:09  wenli7363  阅读(146)  评论(0编辑  收藏  举报