제네릭과 타입 추론 · 코딩 클래스
선택한 언어나 버전에는 이 주제가 없어 같은 영역의 시작 페이지를 표시합니다.
학습 장의 개념을 직접 사용합니다. 문제는 확인하기 → 프로그램 만들기 → 오류 해결하기 순서입니다. 먼저 구현한 뒤 힌트를 읽고 완료 기준으로 확인하세요. 각 문제는 별도 파일이나 작업 디렉터리에서 진행하세요.
1. 확인하기 · 타입 인자 선택
섹션 제목: “1. 확인하기 · 타입 인자 선택”identity를 Int와 String으로 호출하고 identity<I32>(1)도 호출하세요. 반환값을 해당 타입의 변수에 저장하세요.
완료 기준: 7, hello, 1을 출력합니다. 세 호출의 T가 무엇인지 설명합니다.
힌트: 인자 타입에서 추론하거나 전체 타입 인자를 직접 적습니다.
2. 프로그램 만들기 · 기본값 선택 함수 재사용
섹션 제목: “2. 프로그램 만들기 · 기본값 선택 함수 재사용”학습 장의 or_default<T>로 Option<Int>와 Option<String>을 처리하세요. Some(5), Int None, Some(“x”), String None을 각각 0·untitled 기본값과 조합하세요.
완료 기준: 출력은 5, 0, x, untitled입니다. 산술 연산 없이 같은 제네릭 함수로 처리합니다.
힌트: Option<T>의 알려진 형태를 match로 나눕니다.
3. 오류 해결하기 · 반환 위치만 보고 추론하지 않기
섹션 제목: “3. 오류 해결하기 · 반환 위치만 보고 추론하지 않기”아래 타입 오류를 타입 인자 지정과 인자 변환 두 방법으로 각각 고치세요. 결과 변수는 I32로 유지합니다.
의도적인 오류가 있는 시작 코드입니다.
fn identity<T>(value: T) -> T { return value; }fn main() { let value: I32 = identity(1); println(value); }xen check class_inference.xen진단에 포함되는 내용:
expected I32, found Int (I64)완료 기준: 두 버전 모두 1을 출력하며 검사에 성공합니다.
힌트: identity<I32>(1) 또는 identity(i32(1))을 사용합니다.
검증하고 기록하기
섹션 제목: “검증하고 기록하기”정상 프로그램은 xen check 파일.xen 후 xen run 파일.xen으로 확인하세요. 테스트 전용 파일은 xen test 파일.xen을 사용합니다. 수정 전 오류·원인·수정 후 결과를 짧게 기록하고, 완료 기준의 모든 입력을 다시 실행하세요.