X::Anon::Multi — 익명 multi 선언 오류
X::Anon::Multi — 익명 multi 선언 오류 (Anonymous multi declaration)
multi라는 키워드가 붙은 서브루틴이나 메서드는 이름이 있어야 구분할 수 있는데, 그 이름이 빠진 채로 multi를 선언하려 하면 어떻게 될까요? Raku는 이 상황을 컴파일 시점 오류로 처리해요. 그 오류를 담당하는 타입이 X::Anon::Multi예요.
본문
익명 multi를 선언하려고 하면 컴파일 시점 오류(compile time error)가 발생해요.
class X::Anon::Multi does X::Comp { }
예를 들어 다음처럼 이름 없는 multi 메서드를 선언하면,
multi method () { }
이런 메시지와 함께 실패해요.
Cannot put multi on anonymous method
multi는 같은 이름의 여러 후보를 구분하기 위한 기능이니, 이름이 없는 익명 메서드에는 붙일 수가 없어요.
메서드 multiness
method multiness(--> Str:D)
원래 코드가 사용한 multiness가 무엇인지 문자열로 돌려줘요. 예를 들어 "multi"나 "proto" 같은 값이에요.
메서드 routine-type
method routine-type(--> Str:D)
선언된 루틴의 종류를 문자열로 돌려줘요. 예를 들어 "sub"나 "method" 같은 값이죠.