더북(TheBook)

joinToString()은 디폴트 인자를 사용하는 표준 라이브러리 함수다. joinToString()은 이터레이션이 가능한 객체(리스트, 집합, 범위 등)의 내용을 String으로 합쳐준다. 이때 원소 사이에 들어갈 문자열(구분자), 맨 앞에 붙일 문자열(접두사), 맨 뒤에 붙일 문자열(접미사)을 지정할 수도 있다.

NamedAndDefaultArgs/CreateString.kt

import atomictest.eq

fun main() {
  val list = listOf(1, 2, 3,)
  list.toString() eq "[1, 2, 3]"
  list.joinToString() eq "1, 2, 3"
  list.joinToString(prefix = "(",
    postfix = ")") eq "(1, 2, 3)"
  list.joinToString(separator = ":") eq
    "1:2:3"
}

ListtoString() 디폴트 구현은 각괄호 안의 원소를 콤마로 구분해 반환한다. 하지만 다르게 표현하고 싶을 수도 있다. joinToString()의 디폴트 값으로 separator에는 콤마, prefixpostfix에는 빈 문자열이 지정되어 있다. 위 예제에서는 이름 붙은 인자를 사용해 변경하고 싶은 인자를 지정했다.

list의 초기화 코드에도 덧붙은 콤마가 있다. 일반적으로는 각 원소가 한 줄을 차지할 때만 덧붙은 콤마가 필요하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.