Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:rust:rust

Rust

安装

Windows

在官网下载rustup-init.exe,直接安装即可。安装成功后,应该可以执行的程序有cargo(项目管理器),rustc(编译器)

MacOS

// 来自官网,执行完成之后重启Terminal
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

项目管理器

Cargo是Rust的项目管理器

# 创建新项目
cargo new project_name

# 在一个项目内部
cargo build
cargo run

基础语法

一份代码学会Rust

// 一份代码学会Rust
 
// 这是Rust的单行注释
 
/*
这是Rust的多行注释
*/
 
fn main() {
    print!("Hi, "); // 不会换行
    println!("Hello"); // 会换行
 
    adv_print();
 
    basic_data();
 
    basic_control();
}
 
// Rust在语言层面上,建议使用adv_print这样的函数名,而不是advPrint
 
// 一些高级的输出方式
fn adv_print() {
    println!("{0} + {0} = {1}, {{ Inside }}", 1, basic_function(1,1));
}
 
// 函数的参数和返回值
fn basic_function(x: i32, y: i32) -> i32 {
    return x + y;
}
 
// 数据类型相关
fn basic_data() {
    let id = 100;
    let mut value = 3.14;
}
 
// 分支循环
fn basic_control() {
    // 分支
    // 只是没有小括号而已
    if basic_function(10,5) > 12 {
        println!("basic_function(10,5) > 12");
    } else if basic_function(10,10) < 18 {
        println!("basic_function(10,10) < 18");
    } else {
        println!("else");
    }
 
    // while循环
    let mut index = 1;
    while index <= 5 {
        print!("{}, ", index);
        index += 1; // +=运算符
    }
 
    // 数值范围的for循环,范围是[1,5)
    for i in 1..5 {
        print!("{}, ", i*i);
        if i == 4 { println!(""); } // 不能有单条语句,必须加{}
        // 错误,非loop循环并不能使用break返回值
        // if i == 3 { break 1; }
    }
 
    index = 1; // mut可以直接重新赋值
    // loop循环
    // 无限循环,或者用于迭代查找值
    let res = loop {
        if index * index > 250 {
            break index; // break可以返回一个值
        }
        index += 1;
    }; // 本质还是一个赋值语句,需要分号
    println!("Res = {}", res);
}
/var/www/DokuWikiStick/dokuwiki/data/pages/程序/rust/rust.txt · Last modified: 2024/02/25 11:56 by zhonghui