Skip to content
jenix21 edited this page Jun 29, 2015 · 1 revision

배열 : type signature [T; size]

  • 동일한 타입 T의 collection
  • 컴파일 타임에 크기를 알수 있음.

슬라이스 : type signature &[T]

  • 컴파일 타임에 크기를 알수 없음.
  • two-word object (두개의 맴버를 갖는 객체)
    • 데이터에 대한 포인터
    • 슬라이스의 길이
  • 배열이 일부를 borrow 하기위해 사용할 수 있음.
use std::mem;
fn analyze_slice(slice: &[i32]) {
    println!("first element of the slice: {}", slice[0]);
    println!("the slice has {} elements", slice.len());
}
fn main() {
    // 고정크기 배열
    let xs: [i32; 5] = [1, 2, 3, 4, 5];
    // 같은 값으로 초기화, 0으로 초기화.
    let ys: [i32; 500] = [0; 500];
    // 메모리 크기
    println!("array occupies {} bytes", mem::size_of_val(&xs));
    // 배열은 자동으로 슬라이스로 넘겨짐
    analyze_slice(&xs);
    // 범위 지정
    analyze_slice(&ys[1 .. 4]);
}

http://rustbyexample.com/primitives/array.html

https://doc.rust-lang.org/std/slice/

Clone this wiki locally