콘텐츠로 이동
Xen / docs

문서 검색

한국어 · v0.1.0-demo.2

검색어를 입력하세요.

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

    구조체와 enum · 코딩 클래스

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

    enum Status { Pending, Done, Failed(String) }를 선언하고 각 상태를 문자열로 바꾸는 함수를 작성하세요.

    완료 기준: Pending은 pending, Done은 done, Failed(“disk”)는 failed: disk입니다.

    힌트: match의 모든 갈래가 String을 반환하게 하세요.

    2. 프로그램 만들기 · 작업 카드 만들기

    섹션 제목: “2. 프로그램 만들기 · 작업 카드 만들기”

    문자열 title과 Bool done 필드를 가진 Task를 만들고 상태를 포함하는 label 메서드를 구현하세요. 제목 read의 미완료·완료 카드를 출력하세요.

    완료 기준: 출력은 todo: read, done: read입니다. 완료 여부를 변경할 변수를 변경 가능하게 선언합니다.

    힌트: 학습 장의 &self 메서드 호출 형태를 사용하세요. 명시적 참조를 만들 필요는 없습니다.

    3. 오류 해결하기 · 빠진 enum 갈래 수정

    섹션 제목: “3. 오류 해결하기 · 빠진 enum 갈래 수정”

    아래 코드를 검사하고 누락한 상태를 명시적으로 처리하세요. _로 가리지 말고 두 variant를 모두 적으세요.

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

    class_match.xen
    enum State { Ready, Waiting }
    fn label(state: State) -> String {
    return match state { State.Ready => "ready", };
    }
    fn main() { println(label(State.Waiting)); }
    터미널 창
    xen check class_match.xen

    진단에 포함되는 내용:

    class_match.stderr
    non-exhaustive match; missing Waiting

    완료 기준: Ready는 ready, Waiting은 waiting을 반환하고 검사에 성공합니다.

    힌트: enum은 모든 형태가 처리돼야 합니다.

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