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 // Иҷозат дода мешавад