소유권과 빌림

Rust Slices: &str and &[T]

Borrow part of a string or array without copying a single byte.

  • 중급
  • 2분 분량
  • 실행 가능한 예제 1개
배울 내용
  • String slices
  • Array slices
  • Returning a slice
&numbers[1..4]
100
201
302
403
504
The slice covers indexes 1, 2 and 3.

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.

핵심 포인트

  1. &text[0..5] borrows the first five bytes.
  2. A slice does not copy the data.
  3. &numbers[1..4] has three items.

실행 가능한 Rust 예제

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 = 90

연습

예제를 온라인 컴파일러에서 열고 값을 바꾸거나 한 줄을 추가한 다음, 실행하기 전에 출력을 예상해 보세요. 그런 다음 일부러 코드를 망가뜨리고 컴파일러 메시지를 읽어 보세요.

이 레슨을 마쳤나요?

학습 완료로 표시하면 진행 상황을 기록할 수 있습니다.

다음: Lifetimes →

챌린지로 연습하기

이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.

모든 챌린지