从我在文档中阅读的内容中,我的理解是,kotlin中的字符串插值工作使得此代码:
val n = 5
println("N is $n")
转化为
StringBuilder().append("N is ").append(n).toString()
对于StringBuilder.Append((具有实现的类型,这是很好的nandy。我现在希望使用Kotlin扩展机械师能够附加我自己的课程:
class Foo(a: Int = 0, b: Float = 0f) {}
fun Stringbuilder.append(aFoo: Foo) : Stringbuilder! {
return this.append("A = $a, B = $b")
}
,当我打电话时:
aFoo = Foo(3,5.0f)
println("aFoo parameters are: $aFoo")
它打印:" afoo参数为:a = 3,b = 5.0"
不幸的是,看来我的扩展名被:
public open fun append(obj: Any!): StringBuilder!
我没有设法在文档中找到以下方式...建议?
谢谢!
您可以通过覆盖foo的to绳来实现这一目标。
class Foo(val a: Int = 0, val b: Float = 0f) {
override fun toString(): String {
return "A = $a, B = $b"
}
}