logo
💻 编程语言

Rust

Rust Cheat Sheet - 快速参考指南,收录常用语法、命令与实践。

📂 分类 · 编程语言🧭 Markdown 速查🏷️ 2 个标签
#rust#systems
向下滚动查看内容
返回全部 Cheat Sheets

Getting Started

Hello_World.rs
RUST
滚动查看更多
fn main() {
    println!("Hello, World!");
}

Compiling and Running

SHELL
滚动查看更多
$ rustc Hello_World.rs
$ ./Hello_World
Hello, World!
Primitive types
boolBoolean (true / false)
charcharacter
f32, f6432-bits, 64-bits floats
i64, i32, i16, i8signed 16- ... integers
u64, u32, u16, u8unsigned 16-bits, ... integers
isizepointer-sized signed integers
usizepointer-sized unsigned integers

See: Rust Types

Formatting
RUST
滚动查看更多
// Single Placeholder
println!("{}", 1);

// Multiple Placeholder
println!("{} {}", 1, 3);

// Positional Arguments
println!(
    "{0} is a {1} {2}, also {0} is a {3} programming language",
    "Rust", "cool", "language", "safe"
);

// Named Arguments
println!(
    "{country} is a diverse nation with unity.",
    country = "India"
);

// Placeholder traits :b for binary, :0x is for hex and :o is octal
println!("Let us print 76 is binary which is {:b} , and hex equivalent is {:0x} and octal equivalent is {:o}", 76, 76, 76);

// Debug Trait
println!(
    "Print whatever we want to here using debug trait {:?}",
    (76, 'A', 90)
);

// New Format Strings in 1.58
let x = "world";
println!("Hello {x}!");
Printing Styles
RUST
滚动查看更多
// Prints the output
print!("Hello World\n");

// Appends a new line after printing
println!("Appending a new line");

// Prints as an error
eprint!("This is an error\n");

// Prints as an error with new line
eprintln!("This is an error with new line");
Variables
RUST
滚动查看更多
// Initializing and declaring a variable
let some_variable = "This_is_a_variable";

// Making a variable mutable
let mut mutable_variable = "Mutable";

// Assigning multiple variables
let (name, age) = ("ElementalX", 20);

// (Global) constant
const SCREAMING_SNAKE_CASE: i64 = 9;
Comments
RUST
滚动查看更多
// Line Comments
/*.............Block Comments */
/// Outer doc comments
//! Inner doc comments

See: Comment

Functions
RUST
滚动查看更多
fn test() {
    println!("This is a function!");
}

fn main() {
    test();
}

See: Functions

Rust Types

Integer
RUST
滚动查看更多
let mut a: u32 = 8;
let b: u64 = 877;
let c: i64 = 8999;
let d = -90;
Floating-Point
RUST
滚动查看更多
let mut sixty_bit_float: f64 = 89.90;
let thirty_two_bit_float: f32 = 7.90;
let just_a_float = 69.69;
Boolean
RUST
滚动查看更多
let true_val: bool = true;
let false_val: bool = false;
let just_a_bool = true;
let is_true = 8 < 5; // => false
Character
RUST
滚动查看更多
let first_letter_of_alphabet = 'a';
let explicit_char: char = 'F';
let implicit_char = '8';
let emoji = "\u{1f600}"; // => 😀
String Literal
RUST
滚动查看更多
let community_name = "AXIAL";
let no_of_members: &str = "ten";

println!("The name of the community is {community_name} and it has {no_of_members} members");

See: Strings

Arrays
RUST
滚动查看更多
┌─────┬─────┬─────┬─────┬─────┬─────┐
| 92  | 97  | 98  | 99  | 98  | 94  |
└─────┴─────┴─────┴─────┴─────┴─────┘
   0     1     2     3     4     5

RUST
滚动查看更多
let array: [i64; 6] = [92, 97, 98, 99, 98, 94];
Multi-Dimensional Array
RUST
滚动查看更多
     j0   j1   j2   j3   j4   j5
   ┌────┬────┬────┬────┬────┬────┐
i0 | 1  | 2  | 3  | 4  | 5  | 6  |
   ├────┼────┼────┼────┼────┼────┤
i1 | 6  | 5  | 4  | 3  | 2  | 1  |
   └────┴────┴────┴────┴────┴────┘

RUST
滚动查看更多
let array: [[i64; 6]; 2] = [
    [1, 2, 3, 4, 5, 6],
    [6, 5, 4, 3, 2, 1]
];
Mutable Array
RUST
滚动查看更多
let mut array: [i32; 3] = [2, 6, 10];

array[1] = 4;
array[2] = 6;

Use the mut keyword to make it mutable.

Slices
RUST
滚动查看更多
let mut array: [i64; 4] = [1, 2, 3, 4];
let mut slices: &[i64] = &array[0..3]; // Lower range is inclusive and upper range is exclusive

println!("The elements of the slices are : {slices:?}");
Vectors
RUST
滚动查看更多
let some_vector = vec![1, 2, 3, 4, 5];

A vector is declared using the vec! macro.

Tuples
RUST
滚动查看更多
let tuple = (1, 'A', "Cool", 78, true);

Rust Strings

String Literal
RUST
滚动查看更多
let cs: &str = "cheat sheet";

// => Share cheat sheet for developers
println!("Share {cs} for developers");
String Object
RUST
滚动查看更多
// Creating an empty string object
let my_string = String::new();

// Converting to a string object
let S_string = a_string.to_string();

// Creating an initialized string object
let lang = String::from("Rust");
println!("First language is {lang}");
.capacity()
RUST
滚动查看更多
let rand = String::from("Random String");
rand.capacity() // => 13

Calculates the capacity of the string in bytes.

.contains()
RUST
滚动查看更多
let name = String::from("ElementalX");
name.contains("Element") // => true

Checks if the substring is contained inside the original string or not.

Pushing a single character
RUST
滚动查看更多
let mut half_text = String::from("Hal");
half_text.push('f'); // => Half
Pushing an entire String
RUST
滚动查看更多
let mut hi = String::from("Hey there...");
hi.push_str("How are you doing??");

// => Hey there...How are you doing??
println!("{hi}");

Rust Operators

Comparison Operators
e == fe is equal to f
e != fe is NOT equal to f
e < fe is less than f
e > fe is greater than f
e <= fe is less than or equal to f
e >= fe is greater or equal to f

RUST
滚动查看更多
let (e, f) = (1, 100);

let greater = f > e;        // => true
let less = f < e;           // => false
let greater_equal = f >= e; // => true
let less_equal = e <= f;    // => true
let equal_to = e == f;      // => false
let not_equal_to = e != f;  // => true
Arithmetic Operators
a + ba is added to b
a - bb is subtracted from a
a / ba is divided by b
a % bGets remainder of a by dividing with b
a * ba is multiplied with b

RUST
滚动查看更多
let (a, b) = (4, 5);

let sum: i32 = a + b;            // => 9
let subtractions: i32 = a - b;   // => -1
let multiplication: i32 = a * b; // => 20
let division: i32 = a / b;       // => 0
let modulus: i32 = a % b;        // => 4
Bitwise Operators
OperatorDescription
g & hBinary AND
<code>g | h</code>Binary OR
g ^ hBinary XOR
!gBinary one's complement
g << hBinary shift left
g >> hBinary shift right

RUST
滚动查看更多
let (g, h) = (0x1, 0x2);

let bitwise_and = g & h;  // => 0
let bitwise_or = g | h;   // => 3
let bitwise_xor = g ^ h;  // => 3
let right_shift = g >> 2; // => 0
let left_shift = h << 4;  // => 32
Logical Operators
ExampleMeaning
c && dBoth are true (AND)
<code>c || d</code>Either is true (OR)
!cc is false (NOT)

RUST
滚动查看更多
let (c, d) = (true, false);

let and = c && d;  // => false
let or = c || d;   // => true
let not = !c;      // => false
Compound Assignment Operator
RUST
滚动查看更多
let mut k = 9;
let mut l = k;

OperatorDescription
k += lAdd a value and assign, then k=18
k -= lSubtract a value and assign, then k=0
k /= lDivide a value and assign, then k=1
k *= lMultiply a value and assign, then k=81
<code>k |= l</code>Bitwise OR and assign, then k=89

Rust Flow Control

If Expression
RUST
滚动查看更多
let case1: i32 = 81;
let case2: i32 = 82;

if case1 < case2 {
  println!("case1 is less than case2");
}
If...Else Expression
RUST
滚动查看更多
let case3 = 8;
let case4 = 9;

if case3 >= case4 {
    println!("case3 is better than case4");
} else {
    println!("case4 is greater than case3");
}
If...Else...if...Else Expression
RUST
滚动查看更多
let foo = 12;
let bar = 13;

if foo == bar {
    println!("foo is equal to bar");
} else if foo < bar {
    println!("foo less than bar");
} else if foo != bar {
    println!("foo is not equal to bar");
} else {
    println!("Nothing");
}
If...Let Expression
RUST
滚动查看更多
let mut arr1: [i64; 3] = [1, 2, 3];
if let [1, 2, _] = arr1 {
    println!("Works with array");
}

let mut arr2: [&str; 2] = ["one", "two"];
if let ["Apple", _] = arr2 {
    println!("Works with str array too");
}

RUST
滚动查看更多
let tuple_1 = ("India", 7, 90, 90.432);
if let (_, 7, 9, 78.99) = tuple_1 {
    println!("Works with tuples too");
}

let tuple_2 = (9, 7, 89, 12, "Okay");
if let (9, 7, 89, 12, blank) = tuple_2 {
    println!("Everything {blank} mate?");
}

let tuple_3 = (89, 90, "Yes");
if let (9, 89, "Yes") = tuple_3 {
    println!("Pattern did match");
} else {
    println!("Pattern did not match");
}
Match Expression
RUST
滚动查看更多
let day_of_week = 2;
match day_of_week {
    1 => {
        println!("Its Monday my dudes");
    }
    2 => {
        println!("It's Tuesday my dudes");
    }
    3 => {
        println!("It's Wednesday my dudes");
    }
    4 => {
        println!("It's Thursday my dudes");
    }
    5 => {
        println!("It's Friday my dudes");
    }
    6 => {
        println!("It's Saturday my dudes");
    }
    7 => {
        println!("It's Sunday my dudes");
    }
    _ => {
        println!("Default!")
    }
};
Nested...If Expression
RUST
滚动查看更多
let nested_conditions = 89;
if nested_conditions == 89 {
    let just_a_value = 98;
    if just_a_value >= 97 {
        println!("Greater than 97");
    }
}
For Loop
RUST
滚动查看更多
for mut i in 0..15 {
    i -= 1;
    println!("The value of i is : {i}");
}
While Loop
RUST
滚动查看更多
let mut check = 0;
while check < 11 {
    println!("Check is : {check}");
    check += 1;
    println!("After incrementing: {check}");

    if check == 10 {
        break; // stop while
    }
}
Loop keyword
RUST
滚动查看更多
loop {
    println!("hello world forever!");
}

The infinite loop indicated.

Break Statement
RUST
滚动查看更多
let mut i = 1;
loop {
    println!("i is {i}");
    if i > 100 {
        break;
    }
    i *= 2;
}
Continue Statement
RUST
滚动查看更多
for (v, c) in (0..10 + 1).enumerate() {
    println!("The {c} number loop");
    if v == 9 {
        println!("Here we go continue?");
        continue;
    }
    println!("The value of v is : {v}");
}

Rust Functions

Basic function
RUST
滚动查看更多
fn print_message() {
    println!("Hello, CheatSheets.zip!");
}

fn main() {
    //Invoking a function in Rust.
    print_message();
}
Pass by Value
RUST
滚动查看更多
fn main() {
    let x: u32 = 10;
    let y: u32 = 20;

    // => 200
    println!("Calc: {}", cal_rect(x, y));
}

fn cal_rect(x: u32, y: u32) -> u32 {
    x * y
}
Pass by Reference
RUST
滚动查看更多
fn main() {
    let mut by_ref = 3; // => 3
    power_of_three(&mut by_ref);
    println!("{by_ref}"); // => 9
}

fn power_of_three(by_ref: &mut i32) {
    // de-referencing is important
    *by_ref = *by_ref * *by_ref;
    println!("{by_ref}"); // => 9
}
Returns
RUST
滚动查看更多
fn main() {
    let (mut radius, mut pi) = (3.0, 3.14);
    let (area, _perimeter) = calculate(
        &mut radius,
        &mut pi
    );
    println!("The area and the perimeter of the circle are: {area} & {_perimeter}");
}

fn calculate(radius: &mut f64, pi: &mut f64) -> (f64, f64) {
    let perimeter = 2.0 * *pi * *radius;
    let area = *pi * *radius * *radius;
    return (area, perimeter);
}
Arrays as Arguments
RUST
滚动查看更多
fn main() {
    let mut array: [i32; 5] = [1, 2, 3, 4, 6];
    print_arrays(array);
    println!("The elements: {array:?}");
}

fn print_arrays(mut array: [i32; 5]) {
    array[0] = 89;
    array[1] = 90;
    array[2] = 91;
    array[3] = 92;
    array[4] = 93;
    println!("The elements: {array:?}");
}
Returning Arrays
RUST
滚动查看更多
fn main() {
    let mut arr: [i32; 5] = [2, 4, 6, 8, 10];
    multiply(arr);
    println!("The array is : {:?}", multiply(arr));
}

fn multiply(mut arr: [i32; 5]) -> [i32; 5] {
    arr[2] = 90;
    for mut i in 0..5 {
        arr[i] = arr[i] * arr[2];
    }
    return arr;
}

Misc

Type Casting
RUST
滚动查看更多
let a_int = 90; // int
// int to float
let mut type_cast = (a_int as f64);

RUST
滚动查看更多
let original: char = 'I';
// char to int => 73
let type_casted: i64 = original as i64;

To perform type-casting in Rust one must use the as keyword.

Borrowing
RUST
滚动查看更多
let mut foo = 4;
let mut borrowed_foo = &foo;
println!("{borrowed_foo}");

RUST
滚动查看更多
let mut bar = 3;
let mut mutable_borrowed_bar = &mut bar;
println!("{mutable_borrowed_bar}");

Here borrowed value borrows the value from value one using & operator.

De-referencing
RUST
滚动查看更多
let mut borrow = 10;
let deref = &mut borrow;

println!("{}", *deref);

De-referencing in rust can be done using the * operator

Variable Scope
RUST
滚动查看更多
{
    // The scope limited to this braces
    let a_number = 1;
}
println!("{a_number}");

This will produce error as the scope of the variable a_number ends at the braces

Also see

相关 Cheat Sheets

1v1免费职业咨询
logo

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-airwallex.png/image/layout/pay-alipay.png

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 2, 171 La Trobe St, Melbourne VIC 3000
四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号
Business Hub, 155 Waymouth St, Adelaide SA 5000

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。 JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2025 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572