我想了解如何正確使用inline
修飾符。我理解一般情況,當我們內聯lambda來防止過量分配時,如docs中所述。爲什麼使用內聯而不使用lambdas
我檢查科特林STDLIB和_Strings.kt
發現下面的代碼:
@kotlin.internal.InlineOnly
public inline fun CharSequence.elementAtOrNull(index: Int): Char? {
return this.getOrNull(index)
}
背後有什麼用這裏的inline
推理?
在我的示例中,我看到的唯一開銷是額外的方法聲明。在那種情況下,爲什麼我不想用內聯標記方法? Docs說內聯大方法會導致生成的代碼增長,所以我應該將內聯添加到小於100行的每種方法? – mol
你不能內聯一個在類中使用後臺字段的方法,否則就去做。擴展方法沒有這個問題,因爲它們在技術上接收它們作爲附加參數擴展的類,它們實際上並沒有被添加。 – dillius