在kotlin中使用StringBuilder的惯用方法?
我经常编写非常复杂的toString()方法,这个问题一直困扰着我——哪种变体更容易阅读。下面的例子是简化的,通常有很多条件,所以单行程序是不合适的 1) 就像在普通java中一样:在kotlin中使用StringBuilder的惯用方法?,string,kotlin,idioms,String,Kotlin,Idioms,我经常编写非常复杂的toString()方法,这个问题一直困扰着我——哪种变体更容易阅读。下面的例子是简化的,通常有很多条件,所以单行程序是不合适的 1) 就像在普通java中一样: val sb = StringBuilder() sb.append(data) val string = sb.toString() 2) apply+toString()-不太好是吗 val string = StringBuilder().apply { append(data) }.toStrin
val sb = StringBuilder()
sb.append(data)
val string = sb.toString()
2) apply+toString()-不太好是吗
val string = StringBuilder().apply {
append(data)
}.toString()
3) run+toString()最后一个语句也不是很好
val string = StringBuilder().run {
append(data)
toString()
}
4) ??您可以跳过
StringBuilder
并使用Kotlin的内置字符串插值:
val string = "$data"
或者如果事情更复杂:
val string = "The answer is: $data"
或者,使用原始字符串:
val string =
"""
{
"name": $name,
"value": $value
}
"""
@dyukha答案是100%的最佳选择: 只是
val s = buildString { append(data) }
你在问。。。。哪个更清楚。。。这个问题怎么回答?。只是
vals=buildString{append(data)}
谢谢@dyukha-这就是我要找的!如果在第3代或更多的条件句中,插入的字符串比StringBuilder混乱得多,这是一个公平的批评。然而,最初的问题没有这个,所以我只是提供了其他选择。并非每个解决方案都适用于所有问题。:)您还可以在description中使用链式形式StringBuilder().append(“first”).append(“second”).toString()
:“通常有很多条件,所以单行程序不适合”