kotlinで文字列連結する場合
Javaでもkotlinでも文字列連結は+でもできますが、回数の多い繰り返しの中で処理するのは効率がよくありません。
Javaであれば、StringBuilder(か、StringBuffer)を使います。kotlinでもこれらが使えますが、標準関数であるbuildStringを使ったほうが、よりkotlin的な書き方ができます。
StringBuilderの場合
val str = StringBuilder()
for( i in 1..10) {
str.append(i)
str.append("\n")
}
println(str.toString())
StringBuilderの場合はstrはStringBuilder型です。最後にStringに直すにはtoString()が必要です。
for { ・・・ }ループとStringBuilderのnewが同列に並んでいます。
buildStringの場合
val str = buildString {
for (i in 1..10) {
append(i)
append("\n")
}
}
println(str)
buildStringの場合、strはString型です。
for { ・・・ }のループが、buildStringの引数の関数、{ ・・・ }の中に入ります。
また、
append("あ", "い", "う") // 複数可能
appendln("おおおおお") // 改行付
と言った使い方もできます。