Trình biên dịch Rust online

Viết, biên dịch, chạy và gỡ lỗi code Rust trực tuyến trong IDE đầy đủ tính năng. Làm việc với nhiều tệp, lưu workspace, chia sẻ và cộng tác theo thời gian thực.

Thư viện cài đặt sẵn
🚀 252,702 tổng số lượt thực thi (135 trong tháng này)
Nhúng
Kết quả

Luyện Rust với thử thách lập trình

Giải các bài tập thực tế ngay trên trình soạn thảo này: chạy kiểm thử mẫu, nộp bài và nhận đánh giá code từ AI.

Tất cả thử thách Rust
Dễ

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Bạn sẽ học Số họcGiá trị trả về
BeginnerLearning-pathVariables
Dễ

Distance Between Points

Compute the straight-line distance between two points.

Bạn sẽ học Định lý PythagoreCăn bậc hai
BeginnerFunctionsLearning-pathmath
Dễ

Days in a Month

Return how many days a month has, including leap years.

Bạn sẽ học Quy tắc lịchHàm phụ trợ
BeginnerConditionsFunctionsLearning-path
Dễ

Trung Bình Của Ba Số

Tính trung bình cộng của ba số nguyên.

Bạn sẽ học Số họcPhép chia
BeginnerLearning-pathVariables
Dễ

Tích vô hướng của hai vector

Nhân hai vector theo từng phần tử rồi cộng kết quả lại, phép tính cốt lõi của mọi nơ-ron.

Bạn sẽ học VectorTích vô hướng
Mạng nơ-rontrí tuệ nhân tạohọc máy
Dễ

Kiểm Tra Số Nguyên Tố

Xác định xem một số có phải là số nguyên tố hay không.

Bạn sẽ học Tính chia hếtTối ưu vòng lặp
BeginnerLoopsNumbersStudent-beginner
Dễ

Tam giác số

Xây dựng một tam giác các số tăng dần.

Bạn sẽ học Hàng tăng dầnBiến đếm qua các hàng
BeginnerLearning-pathNested-loopsPatterns
Dễ

Số Armstrong

Kiểm tra một số có bằng tổng các chữ số của nó lũy thừa lên số lượng chữ số hay không.

Bạn sẽ học Tách chữ sốLũy thừa
BeginnerNumbersStudent-beginner
Dễ

Row Sums

Add up every row of a grid.

Bạn sẽ học Danh sách 2 chiềuVòng lặp lồng nhau
BeginnerGridsLearning-path
Dễ

Min and Max Together

Find the smallest and largest value in one pass.

Bạn sẽ học Một lần duyệtTrả về nhiều giá trị
ArraysBeginnerFunctionsLearning-path
Dễ

Count Pairs With a Sum

Count pairs of positions whose values add up to a target.

Bạn sẽ học Cặp chỉ sốTránh đếm trùng
ArraysBeginnerLearning-pathNested-loops
Dễ

Hollow Square

Draw the outline of a square with * characters.

Bạn sẽ học Nhận biết viềnTạo chuỗi
BeginnerLearning-pathNested-loopsPatterns

🦀 Về Trình thực thi Rust trực tuyến này

Trình thực thi Rust của CodeUtility cho phép bạn viết và chạy mã Rust trực tiếp trong trình duyệt - không cần cài đặt, thiết lập toolchain hay môi trường cục bộ. Công cụ được vận hành bởi một sandbox an toàn hỗ trợ các phiên bản trình biên dịch Rust thực 1.70, 1.72, 1.73, và 1.74.

Công cụ này biên dịch và thực thi chương trình Rust của bạn trên đám mây bằng trình biên dịch rustc chính thống, đảm bảo kết quả chính xác và nhất quán. Bạn có thể dễ dàng thử nghiệm với biến, ownership, borrowing, so khớp mẫu, trait, generic và nhiều tính năng hiện đại khác của Rust.

Rất lý tưởng để học các khái niệm cốt lõi của Rust - đặc biệt là an toàn bộ nhớ, xử lý lỗi và lập trình đồng thời - mà không cần cài đặt Cargo hay bất kỳ cấu hình cục bộ nào. Mọi thứ chạy trực tiếp trong trình duyệt chỉ trong vài giây.

Không chỉ là công cụ chạy mã

Sử dụng trình soạn thảo nhiều tệp, terminal thực thi biệt lập, thư viện riêng theo môi trường chạy, không gian làm việc lâu dài, tính năng chia sẻ và cộng tác theo thời gian thực ngay trong cùng một trình thực thi.

Cách sử dụng trình thực thi này?

Chọn môi trường chạy, mở hoặc tạo tệp, viết mã rồi nhấn Chạy. Kết quả xuất hiện trong terminal; người dùng đã đăng nhập có thể lưu tệp trong không gian làm việc, cài thư viện và cộng tác qua liên kết chia sẻ.

  1. Chọn phiên bản rồi chỉnh sửa tệp hiện tại hoặc mở một tệp khác trong không gian làm việc.
  2. Chạy mã, nhập dữ liệu trong terminal khi được yêu cầu và xem lại lịch sử chạy đã lưu.
  3. Sử dụng thư viện, công cụ không gian làm việc, chia sẻ và trò chuyện khi tác vụ cần nhiều hơn một đoạn mã.

💡 Kiến thức cơ bản về Rust & Ví dụ bạn có thể thử ở trên

1. Khai báo biến và hằng

Dùng let để khai báo biến. Dùng const cho hằng và mut cho biến có thể thay đổi.

let x = 10;
let pi: f64 = 3.14;
let name = "Alice";
let is_active = true;

const MAX_USERS: u32 = 100;

2. Câu điều kiện (if / match)

Rust dùng if cho điều kiện và match cho so khớp mẫu.

let x = 2;
if x == 1 {
    println!("One");
} else if x == 2 {
    println!("Two");
} else {
    println!("Other");
}

match x {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

3. Vòng lặp

Rust hỗ trợ for, while và loop vô hạn.

for i in 0..3 {
    println!("{}", i);
}

let mut n = 3;
while n > 0 {
    println!("{}", n);
    n -= 1;
}

4. Mảng

Mảng kích thước cố định trong Rust dùng dấu ngoặc vuông. Dùng slice để truy cập một phần mảng.

let nums = [10, 20, 30];
println!("{}", nums[1]);

5. Vector (Mảng động)

Vec được dùng cho mảng động.

let mut fruits = vec!["apple", "banana"];
fruits.push("cherry");
fruits.pop();

for fruit in &fruits {
    println!("{}", fruit);
}

6. Nhập/Xuất console

Dùng println! để xuất và std::io để nhập.

use std::io;

let mut name = String::new();
println!("Enter your name:");
io::stdin().read_line(&mut name).unwrap();
println!("Hello, {}", name.trim());

7. Hàm

Hàm dùng fn và có thể trả về giá trị với ->.

fn greet(name: &str) -> String {
    format!("Hello, {}", name)
}

println!("{}", greet("Alice"));

8. HashMap

Dùng std::collections::HashMap cho dữ liệu key-value.

use std::collections::HashMap;

let mut person = HashMap::new();
person.insert("name", "Bob");
println!("{}", person["name"])

9. Xử lý lỗi

Rust xử lý lỗi bằng Result và match hoặc unwrap().

fn fail() -> Result<(), String> {
    Err("Something went wrong".to_string())
}

match fail() {
    Ok(_) => println!("Success"),
    Err(e) => println!("{}", e),
}

10. I/O tệp

Dùng std::fs để đọc và ghi tệp.

use std::fs;

fs::write("file.txt", "Hello File").unwrap();
let content = fs::read_to_string("file.txt").unwrap();
println!("{}", content);

11. Xử lý chuỗi

Chuỗi trong Rust được cấp phát trên heap và hỗ trợ nhiều phương thức.

let mut text = String::from(" Hello Rust ");
println!("{}", text.trim());
println!("{}", text.to_uppercase());
text = text.replace("Hello", "Hi");
println!("{}", text);

12. Struct & Phương thức

Rust dùng struct cho kiểu dữ liệu và impl để định nghĩa phương thức.

struct Person {
    name: String,
}

impl Person {
    fn greet(&self) -> String {
        format!("Hi, I'm {}", self.name)
    }
}

let p = Person { name: "Alice".to_string() };
println!("{}", p.greet());

13. Tham chiếu & Mượn

Rust dùng & để mượn giá trị và &mut cho tham chiếu có thể thay đổi.

fn update(x: &mut i32) {
    *x += 1;
}

let mut value = 10;
update(&mut value);
println!("{}", value);