Rust语言 学习01 简介 && 基础
  dBFTbkVLMBge 2023年11月02日 28 0

一、Rust简介

Rust语言  学习01 简介 && 基础_rust

Rust语言  学习01 简介 && 基础_rust_02

Rust语言  学习01 简介 && 基础_rust_03

Rust语言  学习01 简介 && 基础_rust_04

Rust语言  学习01 简介 && 基础_rust_05

Rust语言  学习01 简介 && 基础_rust_06

Rust语言  学习01 简介 && 基础_rust_07

Rust语言  学习01 简介 && 基础_rust_08

Rust语言  学习01 简介 && 基础_rust_09

Rust语言  学习01 简介 && 基础_rust_10

Rust语言  学习01 简介 && 基础_rust_11

Rust语言  学习01 简介 && 基础_rust_12

Rust语言  学习01 简介 && 基础_rust_13

Rust语言  学习01 简介 && 基础_rust_14

Rust语言  学习01 简介 && 基础_rust_15

Rust语言  学习01 简介 && 基础_rust_16

Rust语言  学习01 简介 && 基础_rust_17

二、安装rust

Rust语言  学习01 简介 && 基础_rust_18

Rust语言  学习01 简介 && 基础_rust_19

再安装gcc 参考下面博客内容

https://blog.csdn.net/zhmh326/article/details/120881354

Rust语言  学习01 简介 && 基础_rust_20

再继续自定义安装rust,参考博客

https://blog.csdn.net/zhmh326/article/details/120881354

修改参数options后如下,然后1继续安装这些组件

Rust语言  学习01 简介 && 基础_rust_21

cargo是rust的包管理工具,类似于python的pip,默认的cargo会从国外网站下载包,也可以修改为从科大下载。在用户主目录的.cargo目录下新建一个文件,命名为config(没有扩展名),并输入以下内容:

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

安装clion ,创建工程,写一个hello world

Rust语言  学习01 简介 && 基础_rust_22

点击run执行程序

Rust语言  学习01 简介 && 基础_rust_23

Rust语言  学习01 简介 && 基础_rust_24

Rust语言  学习01 简介 && 基础_rust_25

Rust语言  学习01 简介 && 基础_rust_26

三、使用Cargo

Rust语言  学习01 简介 && 基础_rust_27

Rust语言  学习01 简介 && 基础_rust_28

Rust语言  学习01 简介 && 基础_rust_29

类似于java的maven工程 pom.xml

Rust语言  学习01 简介 && 基础_rust_30

Rust语言  学习01 简介 && 基础_rust_31

Rust语言  学习01 简介 && 基础_rust_32

Rust语言  学习01 简介 && 基础_rust_33

Rust语言  学习01 简介 && 基础_rust_34

Rust语言  学习01 简介 && 基础_rust_35

四、做一个猜数游戏Demo

Rust语言  学习01 简介 && 基础_rust_36

use std::io;// preclude

fn main() {
    println!("猜数!");

    println!("猜测一个数!");

    let mut guess = String::new();

    io::stdin().read_line(&mut guess).expect("无法读取行");
    // io::Result Ok,Err

    println!("你猜测的数是:{}",guess)
    
}

rust语言默认不可变

Rust语言  学习01 简介 && 基础_rust_37

如果想改,需要写成 let mut foo = 1;

生成神秘数字

cargo.toml增加rand依赖

Rust语言  学习01 简介 && 基础_rust_38

运行cargo build 发现正在下载对应的依赖包

Rust语言  学习01 简介 && 基础_rust_39

执行cargo update,可以更新到最新的依赖版本

默认升级到当前0.3下的最新版本0.3.23

Rust语言  学习01 简介 && 基础_rust_40


手动改成0.7.0,然后执行cargo build,发现会下载最新的包

Rust语言  学习01 简介 && 基础_rust_41

Rust语言  学习01 简介 && 基础_rust_42

测试rust的类型转换例子

use std::io;// preclude
use rand::Rng;
use std::cmp::Ordering;

fn main() {
    println!("猜数游戏!");

    let secret_number = rand::thread_rng().gen_range(1..101);

    println!("神秘数字是:{}",secret_number);


    let mut guess = String::new();
    io::stdin().read_line(&mut guess).expect("无法读取行");
    let guess:u32 = guess.trim().parse().expect("invalid number");
    println!("你猜测的数是:{}",guess);
    // 使用match表达式
    match guess.cmp(&secret_number) {
        Ordering::Less => println!("too small!"),
        Ordering::Equal => println!("equal"),
        Ordering::Greater =>  println!("too big"),
    }
 }
}

Rust语言  学习01 简介 && 基础_rust_43

多次猜测 使用loop循环

use std::io;// preclude
use rand::Rng;
use std::cmp::Ordering;

fn main() {
    println!("猜数游戏!");

    let secret_number = rand::thread_rng().gen_range(1..101);

    println!("神秘数字是:{}",secret_number);

    loop {
        let mut guess = String::new();
        io::stdin().read_line(&mut guess).expect("无法读取行");
        let guess:u32 = match guess.trim().parse() {
            Ok(num) => num,
            Err(num) => continue,
        };
        println!("你猜测的数是:{}",guess);
        // 使用match表达式
        match guess.cmp(&secret_number) {
            Ordering::Less => println!("too small!"),

            Ordering::Greater =>  println!("too big"),
            Ordering::Equal => {
                println!("equal");
                break;
            }
        }
    }
}

Rust语言  学习01 简介 && 基础_rust_44



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  oS1xgoxjr0QZ   2023年11月02日   42   0   0 数组Rust
  oS1xgoxjr0QZ   2023年11月02日   31   0   0 Rust
  dBFTbkVLMBge   2023年11月02日   29   0   0 Rust
  oS1xgoxjr0QZ   2023年11月02日   37   0   0 Rust
  oS1xgoxjr0QZ   2023年11月02日   23   0   0 Rust
  oS1xgoxjr0QZ   2023年11月02日   40   0   0 Rust
  oS1xgoxjr0QZ   2023年11月02日   48   0   0 Rust
  y5zqVixaDLkE   2023年11月02日   34   0   0 RustmysqlPostgreSQL
dBFTbkVLMBge