我无法理解kotlin中string.kt的源代码实现

时间:2017-06-13 13:17:21

标签: java open-source kotlin source-code-protection kotlin-android-extensions

在kotlin源代码中,我无法理解如何实现String.kt的长度,具体如下:

package kotlin                                                  
public class String : Comparable<String>, CharSequence {
companion object {}

/**
 * Returns a string obtained by concatenating this string with the string representation of the given [other] object.
 */
public operator fun plus(other: Any?): String

public override val length: Int

public override fun get(index: Int): Char

public override fun subSequence(startIndex: Int, endIndex: Int): CharSequence

public override fun compareTo(other: String): Int}

var len:Int = "abc".length; // len = 3 where to run the length??

在哪里实现长度函数?

1 个答案:

答案 0 :(得分:10)

字符串函数是Kotlin认为Intrinsic函数的例子。它们是基于它们运行的​​平台定义的,您将无法在源代码中找到它们的实现。

对于JVM,它们将直接映射到相应的本地java.lang.String方法。这可确保不存在运行时开销,并利用java标准库中的优化。