Menu
CoddyTech

Phân tích chuỗi thành số

Thuộc phần Logic và luồng chương trình trong hành trình Rust của Coddy. Bài học 47 trên 66.

Một trong những ứng dụng thực tế phổ biến nhất của Result là chuyển chuỗi thành số. Trong Rust, bạn dùng phương thức .parse() để làm việc này. Đây là ví dụ rõ ràng cho thấy lý do Result tồn tại: việc phân tích có thể thất bại.

Phương thức .parse() thử chuyển đổi một chuỗi thành số, nhưng không phải chuỗi nào cũng biểu thị một số hợp lệ. Ví dụ, "42" có thể được phân tích thành số 42, nhưng "hello" không thể chuyển đổi thành bất kỳ số nào:

let valid_number = "42";
let invalid_number = "hello";

let result1: Result = valid_number.parse();
let result2: Result = invalid_number.parse();

Khi phân tích thành công, .parse() trả về Ok(number), chứa giá trị đã chuyển đổi. Khi thất bại, hàm trả về Err(error) cùng thông tin về lý do phân tích thất bại. Điều này buộc bạn xử lý rõ ràng cả hai khả năng, giúp chương trình không bị lỗi khi gặp đầu vào không hợp lệ.

Bạn có thể xử lý kết quả phân tích cú pháp bằng bất kỳ kỹ thuật nào với Result mà bạn đã học: dùng match để xử lý tường minh, dùng unwrap() nếu bạn chắc chắn thao tác sẽ thành công, hoặc dùng toán tử ? để truyền lỗi lên.

challenge icon

Thử thách

Dễ
Viết một hàm (function) parse_to_integer nhận một chuỗi (string) input và trả về giá trị số nguyên (integer) đã phân tích. Nếu không thể phân tích chuỗi thành số nguyên hợp lệ, hãy trả về 0 làm giá trị mặc định.

Dùng phương thức .parse() để chuyển chuỗi thành i32, đồng thời xử lý Result phù hợp để trả về một giá trị an toàn.

Tham số:

  • input (String): Chuỗi cần phân tích thành số nguyên

Giá trị trả về: Số nguyên đã phân tích nếu thành công, hoặc 0 nếu quá trình phân tích thất bại (i32)

Tự làm thử

fn parse_to_integer(input: String) -> i32 {
    // Viết code ở đây
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Rust online