디폴트 인자의 다른 예로 여러 줄 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."""
    }

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

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