gpt4 book ai didi

android - Android 的 Kotlin 扩展开销

转载 作者:行者123 更新时间:2023-11-29 15:12:23 25 4
gpt4 key购买 nike

在整个代码中使用 kotlin 扩展是个好主意吗?

  1. 我想念 iOS 的很多扩展,但这是在 android 中使用这些东西的好方法吗?引用http://antonioleiva.com/kotlin-android-extension-functions/

  2. 有更好的解决方案吗?

最佳答案

为了进一步扩展 Andrey Breslav 的回答,Kotlin 扩展函数会编译为静态 Java 方法,因此大多数通用扩展函数不会产生任何开销。但是有一个极端情况你需要注意 Jake Wharton 在 this talk at Google IO 的前几分钟喊出来的。 .

也就是说,当您将高阶函数 (lambda) 作为参数传递给扩展函数时,如下所示:

fun View.doSomething(block: () -> Unit) {
//do something
}

这段代码会影响性能,因为 lambda 必须在幕后创建一个匿名类,这会耗尽方法并导致类加载。这是一个非常简单的修复,通过将 inline 关键字添加到函数中,这实际上会将您的代码内联到所有这些调用站点函数中,这样您就不会对每个函数都产生性能影响调用扩展函数的时间。

inline fun View.doSomething(block: () -> Unit) {
//do something
}

关于android - Android 的 Kotlin 扩展开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29595223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com