트랙
/
Gleam
Gleam
/
학습 과정
/
불투명 타입
불투

불투명 타입 에서 Gleam

4개의 연습 문제

불투명 타입 소개

Gleam의 불투명 타입은, 그 타입을 정의한 모듈에서만 값을 생성하거나 패턴 매칭할 수 있는 사용자 정의 타입이에요. 특정한 방식으로만 사용해야 하는 타입을 만들 때 유용해요.

불투명 타입은 opaque 키워드로 정의해요.

pub opaque type PositiveInt {
  PositiveInt(inner: Int)
}

이 PositiveInt 타입은 정수가 필요한 상황에서 쓰이는데, 그 값이 0 이상이어야 해요. 일반적인 Gleam Int는 음수도 될 수 있기 때문에 여기에 쓸 수 없어요.

이 타입을 정의한 모듈에서는 내부의 정숫값을 가져오는 함수와, 값이 양수가 아니면 오류를 반환하는 PositiveInt 생성 함수를 정의할 수 있어요.

pub fn from_int(i: Int) -> Result(PositiveInt, String) {
  case i {
    _ if i < 0 -> Error("Value must be positive")
    _ -> Ok(PositiveInt(i))
  }
}

pub fn to_int(i: PositiveInt) -> Int {
  i.inner
}

이런 API가 있으면 다른 모듈에서는 음수 값을 가진 PositiveInt를 만들 수 없어요. 따라서 PositiveInt를 받는 함수는 그 값이 양수임을 확신할 수 있어요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요

불투명 타입 배우기

연습이 잠겨 있어요

불투명 타입 개념을 연습하려면 연습 문제 1개를 더 잠금 해제해요