Rust学习笔记 (二)

 学习资料:rust圣经

基本类型

在rust中每个值都有确切类型

  • 数值类型:有符号整数(i8,i16,i32,i64,isize)、无符号整数(u8,u16,u32,u64,usize)、浮点数(f32,f64)、以及有理数、复数

  • 字符串:字符串字面量和字符串切片&str

  • 布尔类型:trueflase

  • 字符类型:表示单个 Unicode 字符,存储为4个字节

  • 单元类型:即(),其唯一的值也是()

类型推导与标注

它与python等动态语言不同,rust是静态语言,意思就是编译器必须要在编译期就要知道所有变量的类型。虽然它可以根据上下文自己推导出这个变量的类型,但在某些情况下还需要你自己去给它标注类型。

举个例子:

let guess = “42”;

对于这个值,rust是很难分辨它的类型的。所以我们需要给编译器信息,用以下写法来标注其类型。

let guess: i32 = ...

"42".parse::<i32>()

 1.数值类型

rust用的是传统语法创建整数(1,2,..)和浮点数(1.1, 1.2, ...)

 2. 字符、布尔、单元类型

字符类型(char)

在rust中字母,汉字,表情符号都可作为字符

ps:rust中单个字符只能用 ' '表示,字符串用 " " 表示

布尔(bool) 

就只有两个值true和false

单元类型

单元类型就只有 ()这一个值。

它在一些函数返回值时会用上,仅作为一个占位值

3.语句和表达式

在rust语句和表达式的区分很重要,他俩重要特征在于:表达式总要返回值

fn add_with_extra(x: i32, y: i32) -> i32 {
    let x = x + 1;   // 语句
    let y = y + 5;   // 语句
    x + y   //表达式
}

而对这个函数整体来说就是一个表达式 

fn main(){
    let y = {
        let x = 3;    //语句
        x + 1        //表达式
    };
    
    println!("The value of y is: {}", y);
}

语句和表达式虽有区分,但它们并不是一直分开的,就比如上面这段代码,大括号里的整体作为表达式,返回值绑定给y变量,但整体看y的绑定语句,它又是一条语句。

4.函数

函数方面和其他语言差不多,不过有一个注意点,因为rust是强类型语言,所以函数参数需要标注其类型:

fn another_function(x: i32, y: f32) {
    println!("The value of x is: {}", x);
    println!("The value of y is: {}", y);
}

 如果没有给x或y标注类型,编译器就会报错

函数返回

在上面的例子就能看到,rust中函数返回值得时候,不需要用到return,只需要把;删了就行

fn plus_five(x: i32) -> i32 {
    x + 5
}

 就像这样,它的意思就是返回x+5的值

永不返回得发散函数

rust可以设定函数的返回类型,但如果用 ! 作为返回类型,就会表示该函数永不返回。经常会用做导致程序崩溃的函数

fn dead_end() -> ! {
    panic!("no");
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值