문자열 템플릿 안의 식은 어떤 값이든 될 수 있다. 이 값은 자동으로 모든 코틀린 타입이 제공하는 toString() 메서드를 통해 문자열로 변환된다.
이 프로그램을 실행하고 이름(예 John)을 입력하면 다음과 같이 출력된다.
Hello, John! Today is Sat Sep 04 00:42:29 KST 2021
결과는 여러분의 로케일(locale)에 따라 다르다.
첫 줄에서 사용한 import 문은 코드에서 JDK의 java.util.Date라는 클래스의 전체 이름을 사용하지 않고 Date라는 이름으로 참조할 수 있게 해준다. 다음 장에서 임포트와 패키지(package)를 더 자세히 다루겠다.
한 가지 다른 문자열 유형으로 로우 문자열(raw string)이 있다. 로우 문자열을 사용하면 이스케이프 시퀀스를 사용하지 않고도 문자열을 작성할 수 있다. 이러한 리터럴은 큰따옴표 세 개로 둘러싸여 있고, 새줄 문자를 포함한 임의의 문자를 포함할 수 있다.
val message = """ Hello, $name! Today is ${Date()} """.trimIndent()
trimIndent()는 여러 줄에 공통된 최소 들여쓰기(indent)를 제거해주는 표준 코틀린 함수다.
드물겠지만, 로우 문자열에 특수 문자를 추가하고 싶은 경우에는 ${} 안에 특수 문자를 넣으면 된다.
val message = """ This is triple quote:’${"\"\"\""}’ """.trimIndent()
JVM으로 컴파일되는 애플리케이션에서 문자열은 JVM의 String 클래스로 표현된다.