구조체와 enum · 코딩 클래스
선택한 언어나 버전에는 이 주제가 없어 같은 영역의 시작 페이지를 표시합니다.
학습 장의 개념을 직접 사용합니다. 문제는 확인하기 → 프로그램 만들기 → 오류 해결하기 순서입니다. 먼저 구현한 뒤 힌트를 읽고 완료 기준으로 확인하세요. 각 문제는 별도 파일이나 작업 디렉터리에서 진행하세요.
1. 확인하기 · 상태 분류하기
섹션 제목: “1. 확인하기 · 상태 분류하기”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를 모두 적으세요.
의도적인 오류가 있는 시작 코드입니다.
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진단에 포함되는 내용:
non-exhaustive match; missing Waiting완료 기준: Ready는 ready, Waiting은 waiting을 반환하고 검사에 성공합니다.
힌트: enum은 모든 형태가 처리돼야 합니다.
검증하고 기록하기
섹션 제목: “검증하고 기록하기”정상 프로그램은 xen check 파일.xen 후 xen run 파일.xen으로 확인하세요. 테스트 전용 파일은 xen test 파일.xen을 사용합니다. 수정 전 오류·원인·수정 후 결과를 짧게 기록하고, 완료 기준의 모든 입력을 다시 실행하세요.