컬렉션 API는 안전한 조회, 명시적 변경, 순서가 있는 스냅샷, 키 제약, 콜백 호출 순서, 실행 오류를 구분합니다.
정식 계약
Array는 push, get, length, slice, join, 검색, 정렬, 고차 함수, 스택 연산, 삽입·삭제·역순·비우기를 제공합니다. Map은 삽입·조회·삭제, 순서가 있는 keys/values/entries, 크기, 포함 여부, 값 갱신과 걸러내기를 제공합니다. Set은 추가·삭제·포함 여부, 크기, 배열 변환, 합집합·교집합·차집합을 제공합니다.
공개 표면
변경 메서드를 쓰려면 대상이 let mut으로 선언되어야 합니다. 값이 없을 수 있는 조회는 Option을 반환합니다. 맵의 키와 집합의 원소는 안정적으로 비교할 수 있는 타입이어야 합니다. 고차 함수는 컬렉션에 저장된 순서대로 콜백을 호출합니다.
관찰 가능한 동작
arr.get은 범위 밖에서 None을 반환하고, 직접 인덱싱은 실행 오류를 냅니다. map.keys, map.values, map.entries는 삽입 순서의 스냅샷이므로 이후에 맵을 바꾸어도 이미 얻은 스냅샷은 변하지 않습니다. 키를 삭제했다가 다시 넣으면 맨 뒤로 이동하고, 기존 키의 값만 바꾸면 순서는 유지됩니다.
현재 지원
이 페이지에 나열한 Array, Map, Set 멤버는 현재 도구 모음의 검사기와 해석기·Rust·Python 경로에서 공통으로 다룹니다. 임의의 호스트 컬렉션 메서드를 추가로 호출할 수는 없습니다.
제약과 제외
범위 밖 직접 인덱싱, 키로 쓸 수 없는 값, 변경할 수 없는 바인딩의 수정, 타입이 맞지 않는 콜백, x in map, 문자열 .length, 목록에 없는 멤버는 명시적으로 실패합니다.
예제
let mut scores: Map<string, int> = Map.new()
scores.insert("ada", 10)
scores.insert("lin", 12)
let ada = scores.get("ada")
let missing = scores.get("missing")
let keys = scores.keys
print("{ada}:{missing}:{keys}")