Formatter — 주어진 형식 사양에 맞춰 Callable 생성
Formatter — 주어진 형식 사양에 맞춰 Callable 생성
sprintf 호환 형식 문자열을 Callable로 바꿔주는 기능은 어디에 모아둘까 고민하게 되는 부분이에요. Formatter 클래스는 자기 자신의 인스턴스를 만들지는 않지만, 정확히 그 변환 기능의 접근 지점(access point) 역할을 해요. 즉 '형식 문자열 → Callable' 변환을 담당하는 클래스죠.
이 클래스는 Rakudo 컴파일러의 2023.06 릴리스부터 사용할 수 있고, 언어 레벨 6.e이 필요해요.
use v6.e.PREVIEW;
my &handle = Formatter.new("'%5s'");
say handle("foo"); # OUTPUT: «' foo'»
본문
메서드 (Methods)
method new
method new($format --> Callable:D)
sprintf 호환 형식 문자열로부터 캐시된 Callable 객체를 반환해요. 한 번도 본 적 없는 형식 문자열이면 새 Callable 객체를 만들죠.
use v6.e.PREVIEW;
my &zero5 = Formatter.new("%05d");
say zero5(42); # OUTPUT: «00042»
method CODE
method CODE(--> Callable:D)
sprintf 호환 형식 문자열로부터 캐시 없이 Callable 객체를 반환해요. 캐싱이 중요하지 않거나 원치 않는 컴파일 타임 상황에서 쓰도록 만든 메서드예요.
method AST
method AST(--> RakuAST::Node:D)
sprintf 호환 형식 문자열에 대한 Callable의 RakuAST 표현을 반환해요. 디버깅 용도로 쓰게 돼요.
use experimental :rakuast