Raku의 base_type — 한정(definite) 타입의 기반 타입 얻기

Raku의 base_type — 한정(definite) 타입의 기반 타입 얻기

Raku의 타입에는 Any:D처럼 ':D'로 한정된 "한정(definite) 타입"이 있어요. 이 한정 타입이 실제로 바탕을 둔 기반 타입이 무엇인지 물어볼 때 base_type 메서드를 써요. 메타 모델의 Metamodel::DefiniteHOW 역할이 제공해요.

출처: Raku 공식 문서 — base_type

본문

In Metamodel::DefiniteHOW

method base_type($definite_type)

한정 타입의 기반 타입(base type)을 돌려줘요.

say Any:D.^base_type.^name; # OUTPUT: «Any␤»

Any:D처럼 한정된 타입에 ^base_type을 호출하면 그 한정을 벗겨낸 Any가 나와요. ^name으로 그 이름을 확인하면 Any임을 알 수 있죠. 한정 타입 작업 시 그 바탕 타입을 되돌려 받아야 할 때 유용해요.