더북(TheBook)

디폴트 인자의 다른 예로 여러 줄 String의 형식을 맞춰주는 표준 라이브러리 trimMargin() 함수를 들 수 있다. 이 함수는 각 줄의 시작 부분을 인식하기 위한 경계를 표현하는 접두사 String을 파라미터로 받아 사용한다. trimMargin()은 소스 String의 각 줄 맨 앞에 있는 공백들 다음에 지정한 접두사 String까지를 잘라내서 문자열을 다듬어준다. 그리고 여러 줄 문자열의 첫 번째 줄과 마지막 줄 중에 공백으로만 이뤄진 줄을 제거한다.

NamedAndDefaultArgs/TrimMargin.kt

import atomictest.eq

fun main() {
  val poem = """
    |->Last night I saw upon the stair
        |->A little man who wasn't there
          |->He wasn't there again today
|->Oh, how I wish he'd go away."""
  poem.trimMargin() eq
"""->Last night I saw upon the stair
->A little man who wasn't there
->He wasn't there again today
->Oh, how I wish he'd go away."""
  poem.trimMargin(marginPrefix = "|->") eq
"""Last night I saw upon the stair
A little man who wasn't there
He wasn't there again today
Oh, how I wish he'd go away."""
}

|(파이프)가 경계 접두사의 디폴트 인자값이다. 이 인자값을 원하는 다른 값으로 바꿔도 된다.

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