初识Rust

发布于:2024-07-24 ⋅ 阅读:(68) ⋅ 点赞:(0)

安装Rust

下载Rust
参考教程

创建Rust项目

#cargo new 项目名
cargo new project

打开src/main.rs,打开控制台

编译Rust

cargo build

运行Rust

cargo run

windows Rust编译成可执行文件(.exe)

rustc .rs文件路径

初步认识Rust

基础数据类型

对于学习过javascript的人来说比较好懂

let a = 123;
println!("a is {}",a)

注意:a不能是a="123";a=12.3;a=345

  • 第一行的错误在于当声明 a 是 123 以后,a 就被确定为整型数字,不能把字符串类型的值赋给它。
  • 第二行的错误在于自动转换数字精度有损失,Rust 语言不允许精度有损失的自动数据类型转换。
  • 第三行的错误在于 a 不是个可变变量。这就牵扯到了 Rust 语言为了高并发安全而做的设计:在语言层面尽量少的让变量的值可以改变。所以 a 的值不可变。但这不意味着 a 不是"变量"(英文中的 variable),官方文档称 a 这种变量为"不可变变量"。
    使变量变得"可变"(mutable)只需一个 mut 关键字
let mut a = 123;
a = 456;
println!("a is {}",a);

虽然 Rust 有自动判断类型的功能,但有些情况下声明类型更加方便

let a: u64 = 123;
整数型(Integer)

整数型简称整型,按照比特位长度和有无符号分为以下种类:

位长度 有符号 无符号
8-bit i8 u8
16-bit i16 u16
32-bit i32 u32
64-bit i64 u64
128-bit i128 u128
arch isize usize

浮点数型(Floating-Point)
Rust 与其它语言一样支持 32 位浮点数(f32)和 64 位浮点数(f64)。默认情况下,64.0 将表示 64 位浮点数,因为现代计算机处理器对两种浮点数计算的速度几乎相同,但 64 位浮点数精度更高。

实例

fn main() {
    let x = 2.0; // f64
    let y: f32 = 3.0; // f32
}
函数
fn 函数名 ( 参数 ) 函数体{}

举例(有返回值)

//没有返回值
fn main(){
	let test1:i16 = test(10,12);
}
//有返回值
fn test(a:i16,b:i16) -> i16{
	return a + b;
}

c中是

/*
int testSum(int a,int b){
	return a + b;
}
int main(){
	int sum = testSum(10,15);
	return 0;
}
*/

//函数申明
int testSum(int a,int b);
int main(){
	int sum = testSum(10,15);
	return 0;
}
int testSum(int a,int b){
	return a + b;
}
Rust 条件语句
let number:u16 = 3;
if number < 3 {
	println!("条件:true")
}else{
	println!("条件:false")
}

else-if

let number:u16 = 3;
if number < 3 {
	 println!("条件:true")
}else if number = 3{
	println!("条件:false")
}else{
	println!("条件:123")
}
Rust循环

Rust中的循环还是whilefor俩个关键字

while true{}

最好不要使以上写法,可以是加一个结束条件作为循环结束的一个标志

//while 循环结束条件{}
let mut number:i16 = 0;
while number < 10{
	number += 1;
}
for i in 0..5 { //>=0;<5
	println!("i is {}",i)
}
let a = [10, 20, 30, 40, 50];
for i1 in a.iter() {
	println!("值为 : {}", i1);
}

Rust中还有一种循环,是代替了while true那就是loop

let mut number:i16 = 0;
loop {
	number += 1;
    if number > 15 {
    	break;
	}
}
Rust 迭代器

使用 iter() 方法创建借用迭代器

fn TestWhile(){
    let array: [i32; 6] = [1,2,3,4,5,6];
    let iter = array.iter();
    for i in iter{
        println!("iter is {}",i);
        if iter[2] == 3 { //x
            iter[3] = 10; //x
        }
    }
}

会报错,原因:不可变

使用 iter_mut() 方法创建可变借用迭代器(修改其中的变量)

fn TestWhile(){
    let mut array = [1,2,3,4,5,6];
    let mut iter = array.iter_mut(); //iter
    // 假设我们想要访问第一个元素
    let first = iter.next().unwrap();
    *first = 10;
    println!("*first valuse is {:?}",array)
}

网站公告

今日签到

点亮在社区的每一天
去签到