首页 > 其他 > 详细

rust 学习 2

时间:2020-07-12 16:45:23      阅读:66      评论:0      收藏:0      [点我收藏+]

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

rust 学习 2

原文:https://www.cnblogs.com/goodluck14/p/13288324.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!