Код А хорош так, как есть.
Код B можно упростить, сделав ваш builder
ненулевым значением val вместо nullable var, сделав его результатом выражения if
(как вы делаете в коде A). Здесь можно также указать тип builder
, при желании вы можете его отключить. Кроме того, внутри первого блока if вы можете сделать его немного чище, используя значение importance
напрямую, вместо того, чтобы объявлять его как значение (которое вы используете только в одном месте).
val builder = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
val notificationChannel = NotificationChannel("ID", "My", NotificationManager.IMPORTANCE_DEFAULT)
notificationManager.createNotificationChannel(notificationChannel)
NotificationCompat.Builder(applicationContext, notificationChannel.id)
} else {
NotificationCompat.Builder(applicationContext)
}
Что-нибудь более (используя also
или apply
в блоке if), я бы сказал, делает это менее ясным в этом случае. Я не очень люблю звонить по notificationManager
в середине, но я не разработчик Android и не уверен, что этот побочный эффект идиоматичен или нет.