rust 语句与表达式 以及奇妙返回值
语句与表达式
rust中,分号结尾的是语句,没有分号结尾的是表达式
表达式会进行求值,然后返回一个值
函数也是一个表达式
如果一个表达式不返回任何值,那么就会返回
()
rust中一个妙妙类型叫单元类型,其表示为()
,对就是一对括号,唯一的值也是 ()。
谈谈奇妙的返回值
1. 单元类型()
或者说无返回值
用途
做函数的返回值
震撼我一整年,fn main()
中的()
是main
函数的返回值。
你不能说 main 函数无返回值,因为没有返回值的函数在 Rust 中是有单独的定义的:发散函数( diverge function ),顾名思义,无法收敛的函数。
map中的占位符
你可以用 () 作为 map 的值,表示我们不关注具体的值,只关注 key。 这种用法和 Go 语言的 struct{} 类似,可以作为一个值用来占位,但是完全不占用任何内存。
2. 发散函数 !
又一个逆天语法
当用!
作函数返回类型的时候,表示该函数永不返回( diverge function ),特别的,这种语法往往用做会导致程序崩溃的函数:
fn dead_end() -> ! { panic!("你已经到了穷途末路,崩溃吧!"); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?