codes — 문자열의 코드포인트 개수 세기
codes — 문자열의 코드포인트 개수 세기
문자열의 '길이'가 항상 그 안에 들어 있는 문자 수와 같지는 않아요. 특히 유니코드에서는 그렇죠. codes는 문자열 안에 있는 유니코드 코드포인트(code point)의 개수를 돌려주는 루틴이에요.
본문
In Cool
sub codes(Str(Cool))
method codes()
invocant(서브 형태라면 그 인자)를 Str로 강제한 뒤, 그 안에 들어 있는 유니코드 코드포인트의 개수를 돌려줘요.
say 'møp'.codes; # OUTPUT: «3»
'ø'도 하나의 코드포인트로 세기 때문에 møp는 3으로 나와요. 같은 결과를 얻는 다른 방법도 있어요.
say +'møp'.ords; # OUTPUT: «3»
ords가 먼저 실제 코드포인트들을 얻어내기 때문에, 속도 면에서는 차이가 있을 수 있어요.
In Uni
method codes(Uni:D: --> Int:D)
invocant 안에 있는 코드포인트의 개수를 돌려줘요. Uni 타입에서도 codes는 같은 역할을 하지만, 반환 형태가 Int:D로 정의되어 있어요.