inflearn logo

Rust trung cấp thanh lịch (3) - Chuỗi ký tự

Khi xử lý chuỗi trong Rust, bạn đã từng gặp trường hợp độ dài của tiếng Hàn được trả về khác nhau hoặc mã cắt chuỗi bị panic chưa? Trong khóa học này, chúng tôi sẽ giải thích bằng tài liệu trực quan và các ví dụ có thể chạy được, từ mối quan hệ quyền sở hữu giữa String và &str đến sự khác biệt giữa ký tự và byte trong UTF-8. Bạn sẽ thực hành tạo, tìm kiếm, tách, chuyển đổi và chuẩn hóa Unicode cho chuỗi, đồng thời nắm được các tiêu chí để thiết kế API chuỗi an toàn mà vẫn giảm thiểu việc sao chép không cần thiết.

15 học viên đang tham gia khóa học này

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

Rust
Rust
unicode
unicode
Rust
Rust
unicode
unicode

Bạn sẽ nhận được điều này sau khi học.

  • Khả năng hiểu sự khác biệt giữa String, &String và &str, đồng thời lựa chọn kiểu phù hợp với từng tình huống

  • Khả năng phân biệt số ký tự và số byte trong UTF-8, đồng thời cắt chuỗi một cách an toàn

  • Khả năng tạo, chỉnh sửa, tìm kiếm, tách và kết hợp chuỗi bằng API tiêu chuẩn

  • Khả năng chuyển đổi chuỗi, số và ngày tháng, đồng thời xử lý phù hợp các dữ liệu nhập vào không hợp lệ

  • Khả năng chuẩn hóa và so sánh các biểu diễn Unicode khác nhau của tiếng Hàn hangul

Xử lý chuỗi Rust đúng cách, từ quyền sở hữu đến UTF-8

Chuỗi được sử dụng trong hầu hết mọi chương trình như đầu vào người dùng, đường dẫn tệp, trường JSON, thông báo lỗi. Trong Rust, bạn phải phân biệt String sở hữu chuỗi và &str mượn một phần của chuỗi.

Trong bài giảng này, bạn sẽ hiểu cấu trúc bộ nhớ và mối quan hệ ownership giữa String·&str, đồng thời học cách xử lý chuỗi UTF-8 có chứa tiếng Hàn mà không phá vỡ ranh giới ký tự. Từ tạo·sửa·tìm kiếm·tách·kết hợp chuỗi đến chuyển đổi số·ngày tháng, chuẩn hóa Unicode tiếng Hàn, tất cả đều được xác nhận qua các ví dụ có thể thực thi.

Bạn sẽ học tiêu chí mượn đầu vào càng nhiều càng tốt và chỉ tạo String khi cần chuỗi mới. Sau khi hoàn thành khóa học, bạn có thể thiết kế hàm xử lý chuỗi ở dạng an toàn và tiện lợi để gọi.

Nội dung bạn sẽ học

String và &str: Tiêu chí sở hữu và mượn

Tìm hiểu String, &String và &str lần lượt trỏ đến gì dưới góc độ cấu trúc bộ nhớ và quyền sở hữu. Sau khi ôn lại slice của mảng và Vec, bạn sẽ học cách mượn bằng &str mà không cần sao chép toàn bộ hoặc một phần chuỗi.

Chúng ta cũng so sánh thông qua các ví dụ cụ thể về loại kiểu dữ liệu nên sử dụng cho hàm chỉ đọc đầu vào, hàm lưu trữ chuỗi, và hàm trả về một phần của dữ liệu gốc.

Cấu trúc của slice mượn một phần khoảng bằng vị trí bắt đầu và độ dài mà không sao chép dữ liệu gốc

Hiểu UTF-8 và xử lý chuỗi một cách an toàn

Độ dài chuỗi trong Rust biểu thị số byte chứ không phải số ký tự. Thông qua chuỗi có cả tiếng Anh và tiếng Hàn, chúng ta sẽ xác nhận sự khác biệt giữa len, chars và bytes, đồng thời tìm hiểu tại sao panic có thể xảy ra khi cắt chuỗi theo chỉ số byte.

Tiếp theo, chúng ta sẽ thực hành tạo, sửa đổi, tìm kiếm, tách, kết hợp chuỗi, định dạng, chuyển đổi số và ngày tháng, chuẩn hóa Unicode tiếng Hàn. Cuối cùng, chúng ta sẽ tự triển khai và kiểm thử các hàm như dọn dẹp khoảng trắng, trích xuất phần đầu tuân thủ ranh giới UTF-8, tách chuỗi cấu hình, che giấu từ nhạy cảm.

Lý do số lượng ký tự và số lượng byte khác nhau

Lưu ý trước khi học

Môi trường thực hành

  • Bạn có thể thực hành trên Windows, macOS, Linux.

  • Cần có toolchain Rust stable mới nhất và Cargo.

  • Vui lòng chuẩn bị trình soạn thảo như VS Code, Zed có thể chỉnh sửa mã Rust.

  • Các ví dụ sử dụng Rust 2024 edition.

  • Vì các crate cần cho ví dụ về ngày tháng và chuẩn hóa Unicode sẽ được Cargo tải xuống, bạn cần kết nối Internet khi build lần đầu.

  • Không cần phần cứng đặc biệt hay máy tính có cấu hình cao.


Tài liệu học tập

  • Giáo trình trực tuyến

  • Mã nguồn GitHub

Kiến thức tiên quyết và lưu ý

  • Bạn cần biết cú pháp cơ bản của Rust như biến, hàm, câu lệnh điều kiện, vòng lặp.\

  • Bạn cần hiểu các khái niệm cơ bản về quyền sở hữu và việc mượn.


  • Sẽ tốt hơn nếu bạn đã từng sử dụng Vec và slice.


  • Khuyến nghị bạn tham gia khóa học “Nhập môn ngôn ngữ lập trình Rust thanh lịch”.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Lập trình viên đã học về quyền sở hữu trong Rust nhưng vẫn bối rối không biết khi nào nên dùng String và &str

  • Nhà phát triển gặp phải kết quả ngoài dự đoán và lỗi panic khi tính độ dài hoặc cắt chuỗi Hangul

  • Những lập trình viên có thói quen clone hoặc tạo một String mới khi xử lý chuỗi.

  • Nhà phát triển muốn xử lý an toàn các chuỗi đến từ bên ngoài, chẳng hạn như dữ liệu người dùng nhập, nội dung tệp và giá trị cấu hình

Cần biết trước khi bắt đầu?

  • Hiểu cú pháp cơ bản của Rust

  • Hiểu khái niệm quyền sở hữu bộ nhớ trong Rust

Xin chào
Đây là hatemogi

Xác minh sự nghiệp

2,169

Học viên

171

Đánh giá

27

Trả lời

4.7

Xếp hạng

9

Các khóa học

Tôi là một lập trình viên backend rất quan tâm đến lập trình hàm. Tôi từng dẫn dắt các đội ngũ phát triển với vai trò Trưởng nhóm phát triển tại Kakao, Kỹ sư cấp cao tại NHN và Trưởng nhóm tại LINE+, đồng thời từng làm Trưởng nhóm phát triển tại startup AI mang tên DINOTICIA và thực hiện các dự án bằng Rust.

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của hatemogi

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn, kết thúc sau 8 ngày ngày

7.260 ₫

40%

264.755 ₫