簡略化されたコードを簡略化する

簡略化されたコードを簡略化する

例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 の場合にのみ実行を継続します。takeIf() は、式が false と評価された場合に null を返します。

例 2

簡略化する前

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

簡略化

 val lastClickTime = lastRouteTime[router] ?: 0L

知識ポイント

  • lastRouteTime[router] を直接使用して null 許容オブジェクトを取得し、コードを簡素化できます。
  • Kotlin の Map タイプでは、キーがマップ内で定義されていない場合は null を取得するため、Elvis 演算子 ?: を直接使用してデフォルト値を設定でき、これによりコードがより簡潔で読みやすくなります。

おすすめ

転載: blog.csdn.net/weixin_44158429/article/details/131740686
おすすめ