【Rust】类型,函数,控制

【Rust】类型,函数,控制

整类型

长度     有符号   无符号
8-bit    i8      u8
16-bit   i16     u16
32-bit   i32     u32
64-bit   i64     u64
128-bit  i128    u128
arch     isize   usize
let vi8 : i8 = 1;
let vu8 : u8 = 1;
let vi16 : i16 = 1;
let vu16 : u16 = 1;
let vi32 : i32 = 1;
let vu32 : u32 = 1;
let vi64 : i64 = 1;
let vu64 : u64 = 1;
let vi128 : i128 = 1;
let vu128 : u128 = 1;
let vi : isize = 1;
let vu : usize = 1;

浮点类型

长度      符号
32-bit    f32
64-bit    f64
let a : f32 = -1.1;
let b : f32 = 1.1;
let c : f64 = -2.2;
let d : f64 = 2.2;

布尔类型

bool true false

let flag = true;

字符类型

字符四个字节 unicode

let a = 'a';

元组类型

元组是一个将多个其他类型的值组合进一个复合类型的主要方式。元组长度固定:一旦声明,其长度不会增大或缩小。
我们使用包含在圆括号中的逗号分隔的值列表来创建一个元组。元组中的每一个位置都有一个类型,而且这些不同值的类型也不必是相同的

let tup: (i32, f64, u8) = (500, 6.4, 1);
let (a,b,c) = tup;// 解构值 a=500,b=6.4,c=1
let x = tup.0;// 索引值 x=500
let y = tup.1;
let x = tup.2;

数组类型

长度是固定的,分配在栈上

let a = [1,2,3,4,5];// 没有指定类型和长度,由初始值决定
let b: [u32;5] = [6,7,8,9,0];// 指定类型和长度
let c = ['c';3];// 设置相同的值,相当于['c','c','c']
let d = b[0];//获取数组值

函数

// 没有返回值
fn show(v: u32) {
    println!("{}",v);
}
// retur 返回 u32
fn sum1(a: u32, b: u32) -> u32 {
    return a + b;
}
// 最末尾表达式返回,不能加分号,因为加了分号会使表达式变为语句而报错
fn sum2(a: u32, b: u32) -> u32 {
    a + b
}

注释

//

控制

if

let num: u32 = 10;
// 没有括号
if 5 > num && num > 0 { } else if 10 > num && num > 5 { } else if num % 4 == 0 { } else { }

loop

let mut num: u32 = 0;
// 使用break终止循环,使用continue继续循环
loop {
    num += 1;
    if num % 2 == 0 {
        continue;
    }
    if num > 10 {
        break;
    }
    println!("{}",num);
}
// 使用break终止循环并返回值
let result = loop {
    if num > 10 {
        break 999; // 返回值
    }
};// 分号不能少,这是语句
println!("{}",result);

while

let mut sum: u32 = 0;
let mut index: u32 = 1;
while index <= 100 {
    sum += index;
    index += 1;
}
println!("{}",sum);

for

let a = [10,20,30,40,50];
for item in a.iter() {
    println!("{}",item);
}
for item in 0..4 {
    println!("{}",item);// 结果0,1,2,3
}
for item in (0..4).rev() {
    println!("{}",item);// 结果3,2,1,0
}
原文地址:https://www.cnblogs.com/yangchongxing/p/15757159.html