-
Notifications
You must be signed in to change notification settings - Fork 0
slice
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]);
}