(Rust入门教程)Rust course_2--基本类型

数值类型

整形 

长度有符号类型无符号类型
8 位i8u8
16 位i16u16
32 位i32u32
64 位i64u64
128 位i128u128
视架构而定isizeusize

浮点型

let a:f32=9.0;
let b:f64=8.0;
//默认f64

notice

溢出:几乎所有语言都很让人头疼的问题,只能小心为妙了。

浮点数的精度问题:和c/c++一样,由于存储时的误差,不要试图进行比较。

浮点数的储存_浮点数的存储-CSDN博客

这块感觉很有意思,个人研究的方向也能用于这块(提升精度,防止误差),以后可以深入研究下.。

range

for i in 'a'..='z' {
    println!("{}",i);
}

 牛啊,真的很好用。(有无等于号决定了后面那个包含与否)

感觉比python还好用😂

声明类型的几种方式

  let twenty = 20;
  // 让编译器推断,默认i32
  let twenty_one: i32 = 21;
  // :声明
  let twenty_two = 22i32;
  // 通过类型后缀的方式进行类型标注:22是i32类型
  let twenty_two = 22_i32;

 As转换类型

 只有相同的类型才能进行比较,赋值等操作

fn main() {
   let a = 3.1 as i8;
   let b = 100_i8 as i32;
   let c = 'a' as u8; // 将字符'a'转换为整数,97

   println!("{},{},{}",a,b,c)
}

可以用as转换

bool/char/()

char:Rust 的字符不仅仅是 ASCII,所有的 Unicode 值都可以作为 Rust 字符,包括单个的中文、日文、韩文、emoji 表情符号等等,都是合法的字符类型。

每个char占四个字节。

():单元类型,可以作为一个值用来占位,但是完全不占用任何内存。

语句和表达式

表达式总要返回值。语句没有返回值。

attention:

6

也是表达式,因为返回6 

表达式可以对变量赋值,或者在函数体或作用域中作返回值。但注意不能有句末的分号。

如下,在一个作用域中返回x+1,在将值赋值给y

fn main() {
    let y = {
        let x = 3;
        x + 1
    };

    println!("The value of y is: {}", y);
}

如下,在一个函数中返回x+y 

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

表达式如果不返回任何值,会隐式地返回一个 ()

// 使用两种方法让代码工作起来
fn main() {
   let v = {
       let mut x = 1;
       x += 2
   };

   assert_eq!(v, ());
}

这里x+=2是个语句(没有返回值),所以没有返回值,返回()

函数

  • 类型:强类型,必须标注参数和返回值的类型
  • 位置:函数的位置可以随便放,Rust 不关心我们在哪里定义了函数,只要有定义即可。(这点和其他语言较大区别)
  • 返回值:可以直接用不带;的表达式返回(但只能在函数句末),也可以用return返回
  • 返回():
    • 函数没有返回值,那么返回一个 ()
    • 通过 ; 结尾的语句返回一个 ()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值