Ātra ieskats Java vs Kotlinā

Kotlin ir jauna programmēšanas valoda no JetBrains, pasaules labāko IDE veidotāja.

Pērn ap šo laiku Google paziņoja Kotlinu kā vēl vienu oficiālo valodu Android lietotņu izstrādei vietnē Google I / O’17.

Vienā gadā ir tik daudz rakstu par Kotlinu, un izstrādātāji strauji migrē uz Kotlinu.

Airtel produktu inženierijā mēs vienmēr eksperimentējam ar jaunām tehnoloģijām un ieviešam tās savos izstrādājumos. Tālāk ir mana analīze par Kotlinu.

Atšķirībā no vairuma rakstu, kas apraksta valodu, es izvairītos no pārāk daudz programmēšanas terminu lietošanas. Tā vietā es vienkārši izmantošu vienkāršo angļu valodu, lai atsvaidzinātājiem tas noderētu.

Sāksim ar dažiem no maniem pašreizējiem favorītiem.

  1. Mainīgo noteikšana:

Java valodā mums ir tikai lasāmajam mainīgajam fināls.

// JAVA
gala char a = 'A'; // Tikai lasāms `Char` tips
char b = 'B'; // Mainīgs `Char` tips
b = 'C';

Kotlinā mums ir val tikai lasāms mainīgais un var mainīgajam mainīgajam.

// KOTLINS
val a = 'A' // tiek izsecināts tikai lasāmais `Char` tips
var b = 'B' // tiek izsecināts mainīgais `Char` tips
b = 'C'

2. Virkņu veidnes:

Java valodā virkņu formatēšanai mēs izmantojām String.format

// JAVA
int a = 20;
gala virkne t1 = virkne.format ("Amija vecums ir% d", a);
a = 25;
gala virkne t2 = virkne.format ("% s, tagad ir% d.", t1.replace ("ir", "bija"), a);

Kotlinā mēs veidnē varam izmantot izteiksmi.

// KOTLINS
var a = 20
val t1 = "Amija vecums ir $ a"
a = 25
val t2 = "$ {t1.replace (" ir "," bija ")}, tagad ir $ a."

Redziet atšķirību, Kotlin ir tik daudz lasāms un tīrs.

3. Null drošība (nedzēšami tipi un nemainīgi tipi)

Java valodā pēc noklusējuma viss nav spēkā. Tātad, lai izvairītos no NPE, mums bija jāveic daudzas pārbaudes

// JAVA
Stīgas nosaukums = null;

// Drošs veids, kā izvairīties no NPE
if (null! = vārds) {
    int garums = name.length ();
}
// Izmet NPE
int length2 = name.length ();

Kotlin tipa sistēma ir paredzēta, lai novērstu nulles atsauces no koda, kas pazīstama arī kā miljardu dolāru kļūda.

Parastā stīga nevar turēt nulli, bet, lai atļautu nedzēšamo stīgu, mums ir jādod tips kā stīga?

// KOTLINS
val nosaukums: String = "Java"
name = null // Sastādītāja kļūda
val lastName: stīga? = "Kotlin"
lastName = null // darbojas labi

Piekļūstot mainīgo īpašībām, parastā virkne nemetīs NPE, bet virkni? metīs NPE.

Ir daži veidi, kā no tā izvairīties:

  • Normālas pārbaudes izmantošana
// Parasta pārbaude
val garums = ja (lastName! = null) lastName.length else -1
  • Vai izmantojat programmu SafeCall? Operators (viena no labākajām funkcijām Kotlinā)
// Drošs zvans
val length = lastName? .length // Output: lastName length vai null

Tas atgriež lastName.length, ja lastName nav nulle, pretējā gadījumā null. Droši zvani ?. ir patiešām noderīgas atsauču ķēdē, piemēram, emp?

Ja mēs nevēlamies atgriezt nulli un vēlamies atgriezt kādu noklusējuma vērtību. Vai mēs varam izmantot Elvis Operator?

// Izmantojot Elvis Operator
val length = lastName? .length ?: -1 // Output: lastName length or -1
  • Izmantojot !! Operators (NPE cienītājiem)
// Izmantojot !! Operators
valleng = lastName !! .length // Mest NPE, ja lastName ir nulle

4. Ierakstiet Check & Automatic Casting

Java versijā veida pārbaudei izmantojam instanceof, un pēc tam jāievada cast, lai piekļūtu tā īpašībām.

// JAVA
if (vārda instances nosaukums String) {
    int garums = ((stīgas) nosaukums) .length ();
}

Kotlinā mēs izmantojam veidu, lai pārbaudītu tipu, un kompilators gudri ierakstot to nodod. Satriecoši

// KOTLINS
if (vārds ir String) {
    val garums = name.length
}

Plašāka informācija tiek sniegta šeit.

5. Kad izteiksme

Piem., Es vēlos atrast Objekts ir 1 vai 5 vai virkne, vai kāds cits tips.

Java, mums ir jāizmanto instanceof & switch, lai veiktu iepriekš minēto uzdevumu.

// JAVA
privāta virkne switchExample (objekta nosaukums) {
    if (vesela skaitļa instance) {
        Integer tempInt = (vesels skaitlis) nosaukums;
        slēdzis (īslaicīgi) {
            1. gadījums:
            5. gadījums:
                atgriezt "1 vai 5";
            noklusējums:
                atgriezt "Nav 1 vai 5";
        }
    } else if (nosaukuma virknes nosaukums String) {
        atgriezt "Stīgu";
    }
    atgriezt "Nav int vai stīgu";
}

Kotlinā, kad izteiksme to padara tik vienkāršu. Tā tiek automātiski ierakstīta, un tajā var izmantot tik daudz izteiksmes. Turklāt tas ir tik ļoti lasāms.

// KOTLINS
jautri, kad piemērs (nosaukums: jebkurš): stīga =
        kad (vārds) {
            1, 5 -> "1 vai 5"
            ir Int -> "Nav 1 vai 5"
            ir stīgas -> "stīgas"
            cits -> "Nav int vai virkne"
        }

6. Nodarbības

Java programmā mums ir jāizveido getter un setters, lai piekļūtu klases īpašībām.

// JAVA
sabiedriskās klases klients {
    privāts stīgas nosaukums;

    publisks klients (virknes nosaukums) {
        this.name = vārds;
    }

    publiskā virkne getName () {
        atgriešanās vārds;
    }

    public void setName (virknes nosaukums) {
        this.name = vārds;
    }
}

Kotlinā vairs ne getters un setters. Bet mēs varam izveidot, ja vēlaties iestatīt pielāgotus.

// KOTLINS
klases klients (var nosaukums: stīga)

Vislabāk tas ir Kotlinā. Kad to redzēju, man prātā ienāca viens vārds WOW !!! Tas ir satriecoši

Tātad, tikai īss dažu lietu apskats, kas mūsu dzīvi padara labāku. Paldies, ka izlasījāt manu pirmo ierakstu vidējā vidē. Visiem iepriekš norādītajiem koda fragmentiem varat piekļūt saitē.

Ja vēlaties sākt lietot Kotlin, lūdzu, izpētiet viņu oficiālo dokumentāciju. Tas tiešām ir labi.

Lai redzētu vairāk atjauninājumu, vienkārši sekojiet man vidē vai Twitter. Atstājiet savas domas komentāru sadaļā vai sazinieties ar mani Twitter, un es turpināšu pievienot sēriju.

Ja jums tas patīk, lūdzu, atcerieties aplaudēt. Ja turat nospiestu pogu, jūs varat atstāt vairāk skavu.