安卓kotlin面试题 91-100

 91. 阐述Kotlin中性能优化之局部函数 ?
就是像正常定义普通函数的语法一样,在其他函数体内部声明该函数。这些被称为局部函数,它们能访问到外部函数的作用域。

fun someMath(a: Int): Int {
        fun sumSquare(b: Int) = (a + b) * (a + b)

        return sumSquare(1) + sumSquare(2)
}
局部函数最大的局限性: 局部函数不能被声明成内联的(inline)并且函数体内含有局部函数的函数也不能被声明成内联的(inline). 在这种情况下没有任何有效的方法可以帮助你避免函数调用的开销。

经过编译后,这些局部函数会将被转化成Function对象, 就类似lambda表达式一样,并且同样具有上篇文章part1中讲到的关于非内联函数存在很多的限制。反编译后的java代码:

public static final int someMath(final int a) {
        Function1 sumSquare$ = new Function1(1) {
                // $FF: synthetic method
                // $FF: bridge method
                //注: 这是Function1接口生成的泛型合成方法invoke
                public Object invoke(Object var1) {

相关推荐

  1. kotlin面试 91-100

    2024-03-13 16:02:04       19 阅读
  2. kotlin面试 101-105

    2024-03-13 16:02:04       16 阅读
  3. kotlin面试 81-90

    2024-03-13 16:02:04       22 阅读
  4. 面试多线程 91-95

    2024-03-13 16:02:04       18 阅读
  5. Kotlin面试 41-50

    2024-03-13 16:02:04       19 阅读
  6. Kotlin 面试 21-30

    2024-03-13 16:02:04       23 阅读
  7. kotlin面试 61-70

    2024-03-13 16:02:04       21 阅读
  8. Kotlin 面试 31-40

    2024-03-13 16:02:04       27 阅读
  9. kotlin面试 71-80

    2024-03-13 16:02:04       18 阅读
  10. Kotlin 面试

    2024-03-13 16:02:04       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 16:02:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 16:02:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 16:02:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 16:02:04       20 阅读

热门阅读

  1. 2024.03.12蓝桥云课笔记

    2024-03-13 16:02:04       21 阅读
  2. 【力扣二刷思路】DAY2

    2024-03-13 16:02:04       22 阅读
  3. Testing Library - About Queries

    2024-03-13 16:02:04       22 阅读
  4. js 判定一个string是否是正常的正则

    2024-03-13 16:02:04       20 阅读
  5. 面视题之——悲观锁和乐观锁

    2024-03-13 16:02:04       21 阅读