콘텐츠로 이동
Xen / docs

문서 검색

한국어 · v0.1.0-demo.3

검색어를 입력하세요.

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

    제네릭과 타입 추론 · 코딩 클래스

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

    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로 유지합니다.

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

    class_inference.xen
    fn identity<T>(value: T) -> T { return value; }
    fn main() { let value: I32 = identity(1); println(value); }
    터미널 창
    xen check class_inference.xen

    진단에 포함되는 내용:

    class_inference.stderr
    expected I32, found Int (I64)

    완료 기준: 두 버전 모두 1을 출력하며 검사에 성공합니다.

    힌트: identity<I32>(1) 또는 identity(i32(1))을 사용합니다.

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