rust 学习 2

1. 源文件格式:后缀.rs, 源码格式UTF-8

2. 注释:  //      行注释

                /*  */  块注释

                ///       文档行注释     现阶段用不着  ,想看例子可以参考  https://kaisery.github.io/trpl-zh-cn/ch14-02-publishing-to-crates-io.html

                //!       文档块注释    现阶段用不着  ,想看例子可以参考  https://kaisery.github.io/trpl-zh-cn/ch14-02-publishing-to-crates-io.html

2.函数格式 fn  main( a : i32, b : u32) -> i32 { /* xxxxx*/} 

打印输出的2个宏 println!() 和 print!()  

fn main() {
    let a = 12;
    println!("a is {}", a);
}

println! 格式打印,不用记,现在不熟,照着抄几遍就熟了,后面不记得翻翻就行

 

 3. 变量

let  a : i32 = 100;  也可以让编译器自己推导类型  let  a = 100;

let  a = 100; a = 200;    // 错误,不能修改

let  mut x = 100; x = 200;  正确 , mut修饰就能改变了  

let (mut a, mut b) = (1, 2);

let Point { x: ref a, y: ref b} = p;

变量使用前一定要初始化

 变量遮蔽,不同类型的变量可以起同一个名字

fn main() {
    let x = "hello";
    println!("x is {}", x);
    let x = 5;   
    println!("x is {}", x);
}

 4. 变量类型

 isize 和 usize 两种整数类型是用来衡量数据大小的,它们的位长度取决于所运行的目标平台,如果是 32 位架构的处理器将使用 32 位位长度整型

 

 RUST不支持++,-- 

布尔类型:bool   true或者fase

字符类型 :char  大小4个字节 

5. 元组, 用()包括起来的类型

let tup: (i32, f64, u8) = (500, 6.4, 1);
// tup.0 等于 500
// tup.1 等于 6.4
// tup.2 等于 1
let (x, y, z) = tup;
// y 等于 6.4

6. 数组,[] 包括起来的相同类型

let a = [1, 2, 3, 4, 5];
// a 是一个长度为 5 的整型数组

let b = ["January", "February", "March"];
// b 是一个长度为 3 的字符串数组

let c: [i32; 5] = [1, 2, 3, 4, 5];
// c 是一个长度为 5 的 i32 数组

let d = [3; 5];
// 等同于 let d = [3, 3, 3, 3, 3];

let first = a[0];
let second = a[1];
// 数组访问

a[0] = 123; // 错误:数组 a 不可变
let mut a = [1, 2, 3];
a[0] = 4; // 正确

7 表达式与语句

语句是执行某些操作且没有返回值的步骤

let  a  =  10;  语句

表达式有计算步骤且有返回值

fn main() {
    let x = 5;

    let y = {
        let x = 3;
        x + 1               // 不要加 ; 这是表达式
    };

    println!("x 的值为 : {}", x);
    println!("y 的值为 : {}", y);
}

 8 条件判断 

fn main() {
    let a = 3;
    let number = if a > 0 { 1 } else { -1 };
    println!("number 为 {}", number);
}

9 循环

有while,有基于范围的for循环,没有三段式for循环for(a,b,c),没有do {  }while,新增加了loop

fn main() {
    let s = ['R', 'U', 'N', 'O', 'O', 'B'];
    let mut i = 0;
    loop {
        let ch = s[i];
        if ch == 'O' {
            break;
        }
        println!("\'{}\'", ch);
        i += 1;
    }
}
fn main() {
    let s = ['R', 'U', 'N', 'O', 'O', 'B'];
    let mut i = 0;
    let location = loop {
        let ch = s[i];
        if ch == 'O' {
            break i;             // 注意是break  i,因为要赋值给location
        }
        i += 1;
    };
    println!(" \'O\' 的索引为 {}", location);
}

 部分内容来自于菜鸟教程  https://www.runoob.com/rust/rust-tutorial.html

posted @ 2020-07-12 15:06  goodluck14  阅读(171)  评论(0编辑  收藏  举报