rust 语法和语义 03 表达式 VS 语句
2018-02-26 11:23
357 查看
rust 语法和语义 03 表达式 VS 语句
表达式 VS 语句 statement vs expression原本此概念是写在 <语法和语义 02 函数> 章节中,但发现其概念十分基础,故特意单独成章。
概述
类型 | 结尾 | 返回 |
---|---|---|
语句 statement | 分号; (一句话要有结尾) | 无返回值 (只是一句话) |
表达式 expression | 无结尾 | 返回一个值 (表达一个结果) |
声明语句,
表达式语句。其他都是
表达式。
mint: 然而常态见和用的最多的是语句。。。
声明语句
let只能开始一个语句,而不是一个表达式。
rust中,赋值语句 的返回值是空元组
()。
let mut y = 5; let x = (y = 6); // error, x = () not 6
表达式语句
表达式语句,把任何表达式变为语句。因为rust语法期望语句后面跟着语句。其例外是函数的返回表达式。函数返回表达式
让我们回过头来再看看函数的返回。fn add_one(x : u32) -> u32 { x + 1 }
在函数声明时,声明返回值是u32类型。而语句
x + 1;的返回值是
()。这会导致类型错误。所以,在函数返回时使用 表达式
x + 1。不然,rust就会提醒你让你去掉分号啦。
参考
The Rust Programming LanguageRust 程序设计语言(第一版) 简体中文版
相关文章推荐
- 黑马程序员 JavaSE-03 Java基础语法2:语句
- rust 语法和语义 05 注释
- rust 语法和语义 06 分支
- UE正则表达式语法及常用语句
- gcc扩展语法一:在表达式中的语句和声明
- rust 语法和语义 04 原生类型
- C++ switch语句后表达式的类型,vs2015试过
- rust 语法和语义 07 循环
- Java基本语法--数据类型、运算符表达式、基本控制语句、数组使用以及练习
- Lua学习笔记Day2-Lua语法、值与类型、表达式、语句、函数
- rust 语法和语义 02 函数
- 03_Java基础语法_第3天(Scanner、Random、流程控制语句)
- 在 VS 中查找替换时使用正则表达式的语法
- 在 VS 中查找替换时使用正则表达式的语法
- 正则表达式语法汇总--类Unix、UltraEdit、MS VC++ 6.0及VS.NET
- (原创)c#学习笔记03--变量和表达式01--c#的基本语法
- 用短路表达式在语法层面上替代条件判断语句
- Rust 的条件语句、表达式与语句和功能函数的返回值
- Rust语法之if语句
- rust 语法和语义 01 变量绑定