Ownership và borrowing
Rust Slices: &str and &[T]
Borrow part of a string or array without copying a single byte.
Bạn sẽ học được gì
- String slices
- Array slices
- Returning a slice
&numbers[1..4]
100
201
302
403
504
A view of part of a collection
A slice is a reference to a continuous part of a collection. &text[0..5] borrows the first five bytes of a string, and &numbers[1..4] borrows three items of an array.
first_word returns a slice of the text it was given, so nothing is copied. find returns the position of the first space, or None when there is none. A slice of an array works the same way and has methods such as iter and len.
Những điểm quan trọng
- &
text[0..5]borrows the first five bytes. - A slice does not copy the data.
- &
numbers[1..4]has three items.
Ví dụ Rust chạy được
Rust
main.rs
fn first_word(text: &str) -> &str {
match text.find(' ') {
Some(index) => &text[..index],
None => text,
}
}
fn main() {
let sentence = String::from("ownership makes Rust safe");
println!("{}", first_word(&sentence));
println!("{}", &sentence[10..15]);
let numbers = [10, 20, 30, 40, 50];
let middle = &numbers[1..4];
println!("{:?} sum = {}", middle, middle.iter().sum::<i32>());
}
ownership
makes
[20, 30, 40] sum = 90Luyện tập
Mở ví dụ trong trình biên dịch online, đổi một giá trị hoặc thêm một dòng, rồi đoán kết quả trước khi chạy. Sau đó cố ý làm code bị lỗi và đọc thông báo của trình biên dịch.
Bạn học xong bài này chưa?
Đánh dấu đã học để theo dõi tiến độ của bạn.
Tiến độ của bạn đang được lưu trong trình duyệt này Đăng nhập để giữ tiến độ trên mọi thiết bị.
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
- Từ Dài Nhất Tìm từ dài nhất trong một câu. Dễ
- Every Other Character Keep the characters at even positions. Dễ