Rust基础

一、类型系统

  1. 强类型or弱类型
  2. 多态
  3. 支持的基本数据类型,整型的设计(浮点型发挥空间不大)
  4. 字符串的设计,编码方式、字符遍历方式等
  5. 字符的编码方式,如何支持特殊字符
  6. 自定义类型、接口
  7. 泛型
  8. 反射

Rust是一门静态强类型语言,静态表示Rust代码需要经过先经过编译过程生成可执行文件,Rust官方提供的编译期叫rustc,它是由rust编写的,包含在rust源码中,而强类型则表示rust不允许隐式类型转换,比如在Java中你可以把一个int值赋给long类型,因为Java允许隐式类型转换,而在rust中这样是不被允许的。

Rust支持参数化多态和Ad-hoc多态,也就是泛型和trait。
todo:trait

布尔类型

bool类型只有两个值:true和false,可以使用as将bool值转变成数字,但是反之则不行

fn main() {
    let x = true;
    let y : bool = true;

    let w = x as i32;
    let v = x as i64;
    println!("x is :{}",x);
    println!("y is :{}",y);
    println!("w is :{}",w);
    println!("v is :{}",v);
}

基本数据类型

Rust的整数可以分为有符号或无符号数,其中每一种按所占字节数可以分为1、2、4、8、16字节数,例如有符号数可分为:i8, i16, i32, i64和i128,无符号数分为:u8, u16, u32, u64和u128,此外还有根据系统动态配置大小的isize和usize类型
数字类型在创建的时候可以指定类型后缀,而如果没有指定类型时,整数默认是i32,浮点数默认是i64,此外,Rust中还可以使用字节字面量

fn main() {
    let x = 128u32;
    let y : u32 = 128;
    let z = 128;
    let k = b'*';//42
    
    println!("x is :{}",x);
    println!("y is :{}",y);
    println!("z is :{}",z);
    println!("k is :{}",k);
}

字符类型

数组类型

数组Array是Rust内建的类型,数组的类型签名为[T;N]其中T表示类型,N表示长度,常用数组定义方式:

fn main(){
    let arr : [i32; 3] = [1, 2, 3];
    let mut mut_arr = [1, 2, 3];
    let init_arr = [0;10];/*10个元素,初始值为0*/
}

对于原始固定长度的数组,只有实现Copy trait的类型才能作为其元素,即只有在栈上存放的元素才能放到该类型的数组中。

数组的遍历:

Rust内置了Range类型来支持遍历,可以左闭右开即全闭

fn main(){
    let arr = [1,2,3];
    for i in 0..arr.len(){
        //...
    }

    for i in 0..=2{
        //...
    }
}

切片类型

切片类型是对数组的引用,与go类似,在Rust中数组当做参数传递的时候,会进行复制,使用切片后效果类似Java中的引用传递

fn main() {
   let mut arr = [1,2,3] ;
   let slice = &mut arr[1..];
}

二、流程控制

  1. 循环
  2. 分支

三、集合类型

  1. 数组、哈希表的创建和使用
  2. 支持的其余集合类型、集合的各种api、遍历方式
  3. 并发安全性

四、内存管理

  1. 内存管理方式,除堆栈外是否还有其余抽象
  2. 类型的内存分配方式,何时在堆何时在栈
  3. 内存回收,手动or自动or半自动

五、并发

  1. 并发模型,直接映射系统线程、绿色线程还是协程等

六、异常体系

其余

  • 编程范式
  • 语言哲学
  • 语言特色
  • 包管理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值