콘텐츠로 이동
Xen / docs

문서 검색

한국어 · v0.1.0-demo.3

검색어를 입력하세요.

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

    복사·이동·참조 · 코딩 클래스

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

    1. 확인하기 · 사본과 원본 비교

    섹션 제목: “1. 확인하기 · 사본과 원본 비교”

    학습 장의 append_copy와 append_shared를 각각 실행하고 호출 전후의 벡터를 출력하세요. 원본을 유지할 작업과 원본을 바꿀 작업을 구분하세요.

    완료 기준: 사본 변경 뒤 원본은 [1, 2], 참조 변경 뒤 원본은 [1, 2, 3]입니다.

    힌트: Vec<Int> 값 전달은 독립 사본입니다.

    2. 프로그램 만들기 · 원본 벡터 갱신 함수

    섹션 제목: “2. 프로그램 만들기 · 원본 벡터 갱신 함수”

    append_marker(values: &mut Vec<Int>, marker: Int)를 작성해 원본 끝에 marker를 추가하세요. 빈 벡터에 7, 그 결과에 9를 추가하세요.

    완료 기준: 원본이 [7, 9]가 됩니다. 함수와 호출 위치 모두 explc를 허용하며 main의 소유자는 변경 가능합니다.

    힌트: 매개변수를 통해 push를 호출하고 호출자는 &mut를 전달합니다.

    3. 오류 해결하기 · 대여 중 변경 순서 수정

    섹션 제목: “3. 오류 해결하기 · 대여 중 변경 순서 수정”

    아래 코드에서 새 사본을 만들지 않고 문장 순서를 바꿔 오류를 해결하세요. 읽기 참조의 마지막 사용이 어디인지 표시하세요.

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

    class_borrow.xen
    #![explc]
    fn main() {
    let mut value = 1;
    let shared = &value;
    value = 2;
    println(*shared);
    }
    터미널 창
    xen check class_borrow.xen

    진단에 포함되는 내용:

    class_borrow.stderr
    while it is borrowed

    완료 기준: 읽기 참조로 1을 출력한 다음 원본을 2로 바꾸며 검사에 성공합니다.

    힌트: println(*shared)를 대입보다 앞에 옮기세요.

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