Sobes.tech
Junior — Middle

Тафовутҳои системаи намудҳо байни Java ва Kotlin чӣ гуна аст?

sobes.tech AI

Ҷавоб аз AI

Java — забони бо типгузории статик мебошад, ки дар он намудҳои primitives (int, boolean ва ғайра) ва намудҳои истинодӣ равшан ҷудо шудаанд. Дар Kotlin намудҳо бештар муттаҳид шудаанд: ҳама объектҳо мебошанд, аз ҷумла аналогҳои primitives, бо шароити системаи wrapper, ки аз ҷониби компилятор оптимизатсия мешавад.

Асосӣ фарқиятҳо:

  • Бехатарии null: Дар Kotlin намудҳо ба таври пешфарз наметавонанд null дошта бошанд, то аз NullPointerException пешгирӣ кунанд. Барои намудҳои nullable синтаксиси саволӣ истифода мешавад, масалан, String?.
  • Намудҳои умумӣ: Kotlin системаи бештар флексибл барои намудҳои умумиро бо вариация (in, out) дастгирӣ мекунад, дар Java ин тавассути wildcards амалӣ мешавад.
  • Намудҳои додаҳо: Kotlin намудҳои васеъшуда дорад, масалан, Unit дар ҷойи void, ва дастгирии васеъкунии намудҳоро дорад.

Масалан, бехатарии null дар Kotlin:

var a: String = "Hello"
// a = null // Хатои компилятсия

var b: String? = "Hello"
b = null // Иҷозат дода мешавад