格式在kotlinstring模板

Kotlin有一个很好的function叫做string模板。 我很喜欢。

val i = 10 val s = "i = $i" // evaluates to "i = 10" 

但有可能在模板中有任何格式? 例如,我想在kotlin的string模板中格式化Double,至less要在小数点分隔符之后设置一些数字:

 val pi = 3.14159265358979323 val s = "pi = $pi??" // How to make it "pi = 3.14"? 

不幸的是,在string模板中没有内置的格式支持,作为一个解决方法,你可以使用类似于:

 "pi = ${pi.format(2)}" 

.format(n)函数,你需要自己定义为

 fun Double.format(digits: Int) = java.lang.String.format("%.${digits}f", this) 

Kotlin目前显然缺less一些function,我们会解决这个问题。

作为一种解决方法, 有一个Kotlin stdlib函数可以很好的使用,并且完全兼容Java的String格式(它只是Java的String.format()的封装)

你的代码是:

 val pi = 3.14159265358979323 val s = "pi = %.2f".format(pi)