简化简化代码

简化简化代码

例子1

简化前

    private fun getMainTabGap(): Long {
    
    
        return if (cacheKeyHandler != null && cacheKeyHandler!!.getMainTabGap() > 0) {
    
    
            cacheKeyHandler!!.getMainTabGap()
        } else {
    
    
            normalGap  //默认5分钟
        }
    }

简化后

    private fun getMainTabGap(): Long = cacheKeyHandler
        ?.getMainTabGap()
        ?.takeIf {
    
     it > 0 }
        ?: normalGap  //默认5分钟

知识点

  • 首先使用安全操作符 ?. 以避免抛出 NPE 异常
  • 使用 Kotlin 的扩展库函数 takeIf(),它接受一个Lambda表达式,只有在表达式的结果为 true 时才继续执行。如果表达式的结果是 false,takeIf() 会返回null

例子2

简化前

        val lastClickTime = if (lastRouteTime.containsKey(router)) {
    
    
            lastRouteTime[router] ?: 0L
        } else {
    
    
            0L
        }

简化后

 val lastClickTime = lastRouteTime[router] ?: 0L

知识点

  • 可以直接使用 lastRouteTime[router] 获取可空对象来简化代码
  • 在 Kotlin 的 Map 类型中,如果该 key 在 map 中未定义,则获取到的是 null,因此可以直接使用 Elvis 运算符 ?: 来设置默认值,该方式代码更加简洁易读。

猜你喜欢

转载自blog.csdn.net/weixin_44158429/article/details/131740686
今日推荐