Rust 易混淆忘记的基本语法 
                                                    
                        
                    
                    
  
                    
                    一个称呼
 Rustaceans 可以理解为对 rust 支持的那部分人群,可以看这段英文:
Rustaceans are people who use Rust, contribute to Rust, or are interested in the development of Rust.直译过来就是:
Rustaceans 是使用、推进、完善、对 rust 感兴趣的人。当你使用Rust时,那么你也是其中一员。
命名
Rust 代码中的函数和变量名使用 snake case 规范风格,所有字母都是小写并使用下划线分隔单词:another_function.
表达式 和 语句 的区别
Rust 是一门基于表达式(expression-based)的语言,表达式(Expressions)计算并产生一个值,与你见过的大部分代码行不同, 表达式的结尾没有分号,如果在表达式的结尾加上分号,它就变成了语句。
// 这一个表达式,一个代码块,它的值是 4
{
    let x = 3; // 语句
    x + 1 // 表达式
}语句(Statements)是执行一些操作,但不返回值的指令,如:let x = (let y = 6) 会报错,与其他语言不同,例如 C 和 Ruby,它们的赋值语句会返回所赋的值,
这些语言中,可以这么写x = y = 6,这样 x 和 y 的值都是 6;
Rust 中不能这样写,let y = 6 语句并不返回值,所以没有可以绑定到 x 上的值。
函数
用 -> 指明返回类型,不是 :
fn five() -> i32 {
    5
}函数的返回值等同于函数体最后一个表达式的值, 使用 return 关键字和指定值,可从函数中提前返回,大部分函数隐式的返回最后的表达式, 因此可以省略 return.
流程控制
Rust 代码中最常见的用来控制执行流的结构是 if 表达式和循环,有三种循环:loop、while 和 for.
if 表达式
if 是表达式,和其他语言的 if 不一样
    let num =  1;
    // if 和 else 分支的值类型要一样
    // 不然会报错。
    let a = if num > 0 {'T'} else {'F'};上面 rust 代码,直接把 if 表达式的值赋值给了 a。
if 的条件 必须 是 bool 值。如果条件不是 bool 值, 就会报错。
这点让我想到了 PHP
if的痛, PHP 里面的if会让一个问题,变成N个问题,比如,在 PHPif条件里面用了empty判断某个值,那么当值是 数组、数字0、空字符串、’0’…会返回什么?痛意涌上心头。
if 的妙用:
- 当值在某个 option枚举时,可以用它获取存在值的逻辑:... // 这里需要 let Some ,而不是直接使用 Some. if let Some(data) = other_option { println!("{:?}", data); } ...
- 当值在某个 Result枚举时,同理:
 这种用法熟悉后,写逻辑代码就非常流畅.... if let Ok(data) = other_option { println!("{:?}", data); } ...
循环标签
用于在多个循环之间消除歧义,默认 break 和 continue 应用于此时最内层的循环, 用循环标签可以指定 break 和 continue 生效的地方。
 'out_side: loop {
        let mut num = 0;
        println!("begin");
        loop {
            num += 1;
            if num == 5 {
                println!("break to out_side");
                break 'out_side;
            } else if num > 10 {
                break;
            } else { continue; }
        }
        break;
    }易忘记是打标签的语法,前面要有个单引号:
 'out_side: loop {
 ...
 }for
易混淆的是语法
let a = [10, 20, 30, 40, 50];
for element in a {
    println!("the value is: {element}");
}本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           bigbug-gg 的个人博客
 bigbug-gg 的个人博客
         
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: