Sobes.tech
Junior — Middle

Тавзеҳ диҳед дар бораи консепсияи кор бо null дар забони Kotlin ва чӣ гуна амалӣ карда мешавад.

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, концепсияи бехатарии кор бо null тавассути системаи намудҳо амалӣ мешавад, ки намудҳои nullable ва non-nullable-ро дастгирӣ мекунад.

  • Ба таври пешфарз, тағйирёбандаҳо наметавонанд null дошта бошанд. Масалан, var a: String = "матн" наметавонад null бошад.
  • Барои иҷозат додан ба null, намуд бо ? эълон мешавад, масалан, var b: String? = null.

Барои кор бо намудҳои nullable, Kotlin пешниҳод мекунад:

  • Оператори бехатарии даъват ?. — имкон медиҳад, ки як метод даъват шавад ё ба хусусият дастрасӣ пайдо шавад, агар объект null набошад, дар ғайри ҳол null бармегардонад.
  • Оператори Элвис ?: — арзиши пешфарзро муайян мекунад, агар изрази чап null бошад.
  • Оператори тасдиқи бен-null !! — маҷбур мекунад, ки намуди nullable ба non-nullable табдил ёд, ва агар арзиш null бошад, истисно меандозад.

Масалан:

val name: String? = null
println(name?.length) // Натиҷа null, хато намеорад
println(name?.length ?: 0) // Натиҷа 0
println(name!!.length) // NullPointerException меандозад

Бо ин роҳ, Kotlin кӯмак мекунад, ки хатогиҳои классикӣ бо null дар марҳилаи компилятсия пешгирӣ шаванд, ва код боэътимодтар гардад.