콘텐츠로 이동
Xen / docs

문서 검색

한국어 · v0.1.0-demo.3

검색어를 입력하세요.

    EN
    Xen / coding-class v0.1.0-demo.3

    슬라이스와 이터레이터 · 코딩 클래스

    학습 장의 개념을 직접 사용합니다. 문제는 확인하기 → 프로그램 만들기 → 오류 해결하기 순서입니다. 먼저 구현한 뒤 힌트를 읽고 완료 기준으로 확인하세요. 각 문제는 별도 파일이나 작업 디렉터리에서 진행하세요.

    [1, 2, 3]에 학습 장의 doubled와 over_two를 사용하세요. map 다음 filter와 filter 다음 map의 출력을 비교하세요.

    완료 기준: 첫 순서는 4, 6이고 반대 순서는 6입니다. 콜백이 보는 값이 다르다는 점을 설명합니다.

    힌트: filter는 자신 앞 단계가 만든 값을 받습니다.

    2. 프로그램 만들기 · 소유한 상자 소비하기

    섹션 제목: “2. 프로그램 만들기 · 소유한 상자 소비하기”

    [box(10), box(20), box(30)]을 into_iter로 순회하며 into_inner로 꺼내 합계를 계산하세요. iter와 get으로 바꾸면 왜 같은 방식으로 소비할 수 없는지 설명하세요.

    완료 기준: 합계는 60입니다. 순회 후 원본 벡터를 다시 사용하지 않습니다.

    힌트: Box는 이동 전용이고 into_iter는 벡터의 소유권을 가져옵니다.

    3. 오류 해결하기 · 뷰의 사용 시점 수정

    섹션 제목: “3. 오류 해결하기 · 뷰의 사용 시점 수정”

    아래 코드에서 slice를 새 Vec으로 복사하지 않고 문장 순서로 오류를 해결하세요.

    의도적인 오류가 있는 시작 코드입니다.

    class_view.xen
    fn main() {
    let mut values = [1, 2];
    let view = values.as_slice();
    values.push(3);
    println(view.get(0));
    }
    터미널 창
    xen check class_view.xen

    진단에 포함되는 내용:

    class_view.stderr
    cannot mutate 'values' while it is borrowed

    완료 기준: 뷰로 1을 읽은 다음 벡터에 3을 추가합니다. 검사를 통과합니다.

    힌트: 뷰의 마지막 사용을 원본 변경보다 앞에 두세요.

    정상 프로그램은 xen check 파일.xen 후 xen run 파일.xen으로 확인하세요. 테스트 전용 파일은 xen test 파일.xen을 사용합니다. 수정 전 오류·원인·수정 후 결과를 짧게 기록하고, 완료 기준의 모든 입력을 다시 실행하세요.