Cargo
Cargo 是 Rust 的构建系统和包管理器。因为它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库
-
查看版本号
cargo --version rustc --version # 查看rust的版本
-
新建项目
cargo new hello_cargo
创建时会初始化一个git仓库, 如果在现有的git仓库中运行cargo new, 则不会生成git文件
-
编译项目
cargo build
这个命令会创建一个可执行文件 target/debug/hello_cargo (在 Windows 上是 target\debug\hello_cargo.exe)
-
运行项目
cargo run
若未编译则该命令也会先编译
-
检查编译
cargo check
该命令快速检查代码确保其可以编译,但并不产生可执行文件, 通常
cargo check
要比cargo build
快得多,因为它省略了生成可执行文件的步骤 -
发布release
cargo build --release
当项目最终准备好发布时,可以使用
cargo build --release
来优化编译项目。这会在 target/release 而不是 target/debug 下生成可执行文件。这些优化可以让 Rust 代码运行的更快,不过启用这些优化也需要消耗更长的编译时间。
变量和可变性
变量默认是不可改变的(immutable), Rust 编译器保证,如果声明一个值不会变,它就真的不会变。
你可以在变量名之前加 mut
来使其可变
声明常量使用 const
关键字而不是 let
,并且 必须 注明值的类型
数据类型
rust有两类数据类型子集:标量(scalar)和复合(compound)
标量
标量(scalar)类型代表一个单独的值。Rust 有四种基本的标量类型:整型、浮点型、布尔类型和字符类型
整型
长度 | 有符号 | 无符号 |
---|---|---|
8-bit | i8 |
u8 |
16-bit | i16 |
u16 |
32-bit | i32 |
u32 |
64-bit | i64 |
u64 |
128-bit | i128 |
u128 |
arch | isize |
usize |
整型溢出
比方说有一个 u8
,它可以存放从零到 255
的值。那么当你将其修改为 256
时就会发生 “整型溢出”(“integer overflow” ),关于这一行为 Rust 有一些有趣的规则
当在 debug 模式编译时,Rust 检查这类问题并使程序 panic
在 release 构建中,Rust 不检测溢出,相反会进行一种被称为二进制补码包装(two’s complement wrapping)的操作。简而言之,值 256
变成 0
,值 257
变成 1
,依此类推。
浮点型
Rust 的浮点数类型是 f32
和 f64
,分别占 32 位和 64 位。默认类型是 f64
,因为在现代 CPU 中,它与 f32
速度几乎一样,不过精度更高。
let x = 2.0; // f64
let y: f32 = 3.0; // f32
布尔型
Rust 中的布尔类型有两个可能的值:true
和 false
。Rust 中的布尔类型使用 bool
表示。
let t = true;
let f: bool = false; // 显式指定类型注解
字符类型
Rust 的 char
类型是语言中最原生的字母类型, 注意 char
由单引号指定,不同于字符串使用双引号。
let c = 'z';
let z = 'ℤ';
let heart_eyed_cat = '
标签:String,笔记,学习,类型,let,Rust,println,fn
From: https://www.cnblogs.com/gcxblogs/p/17119198.html