문자열의 길이 찾기

Elixir:
문자열의 길이 찾기

How to: (어떻게 하나요?)

Elixir에서 문자열의 길이를 얻기 위해 String.length/1 함수를 사용합니다. 쉽고 직관적이죠:

string = "안녕하세요!"
length = String.length(string)
IO.puts(length)

출력:

6

숫자 ‘6’은 “안녕하세요!” 문자열에 있는 문자 개수를 나타냅니다.

Deep Dive (심층 탐구)

Elixir에서 문자열은 UTF-8로 인코딩되어 있습니다. 이는 각 문자가 하나의 코드포인트로 카운트된다는 것을 의미합니다. String.length/1는 바로 이 코드포인트의 수를 세는 함수입니다.

예전에, 문자열 처리는 ASCII 기반이었고, 모든 문자가 동일한 바이트 수로 표현되었습니다. 하지만, 다국어를 지원하기 위해 UTF-8이 중용되면서 문자열의 길이를 계산하는 과정이 복잡해졌습니다.

문자열의 바이트 길이를 알고 싶다면 byte_size/1 함수를 사용할 수 있습니다. 이는 내부 바이트 표현의 길이를 반환합니다.

byte_size("안녕하세요!") # => 15

하지만 대부분의 경우, String.length/1는 텍스트 처리에 더 유용합니다. 성능에 민감한 상황에서 String.length/1 함수가 문자열 전체를 순회하기 때문에 비용이 발생한다는 점을 염두해두세요. 유니코드 문자열에는 매우 적은 비용이 들긴 하지만, 엄청나게 긴 문자열에서는 중요할 수 있습니다.

See Also (더 보기)