2
科特林標準庫包含接收對象和該對象的方法,該'with' method定義爲:在Scala中可以用'等價方法表示kotlin'嗎?
public inline fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()
而且可以用作:
val str = "string"
with(str) {
println(size)) // will print 6; equals to "string".size
println(substring(3)) // will print (ing); equals to "string".substring(3)
}
如何在Scala中定義類似的方法?
我能看到的主要區別是kotlin的範圍有限,而scala的導入範圍並不是那麼有限。儘管如此,它似乎是最好的斯卡拉是:) – pedrorijo91
@ pedrorijo91我已經更新了我的答案來解決這個問題。 – sjrd
'val str =「hello」:{def size:Int}'幾乎可以工作,但'尺寸'不會警告反射訪問。 (我希望在不知道轉換名稱或包裝器的情況下避免反思。) –