例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 演算子 ?: を直接使用してデフォルト値を設定でき、これによりコードがより簡潔で読みやすくなります。