A Quick Peek into Java vs Kotlin

Kotlin er nýtt forritunarmál frá JetBrains, framleiðandi bestu hugmynda heimsins.

Í fyrra um þessar mundir tilkynnti Google Kotlin, sem annað opinbert tungumál fyrir Android app þróun hjá Google I / O’17.

Á einu ári eru svo margar greinar um Kotlin og verktaki flytja til Kotlin á hröðum skrefum.

Í Airtel vöruverkfræði erum við alltaf að gera tilraunir með nýja tækni og notum þær í vörur okkar. Eftirfarandi er greining mín á Kotlin.

Ólíkt flestum greinum sem lýsa tungumáli ætla ég að forðast að nota of mikið forritunarskilmálar. Í staðinn mun ég bara nota venjulega ensku, svo að það nýtist ferskum.

Við skulum byrja með nokkrar af mínum uppáhaldi.

  1. Skilgreina breytur:

Í Java höfum við lokaorð fyrir Read Only Variable.

// JAVA
endanleg bleikja a = ‘A’; // Lestu aðeins gerð „bleikju“
bleikja b = 'B'; // Breytileg tegund „bleikja“
b = 'C';

Í Kotlin höfum við val fyrir Read Only Variable & var fyrir Mutable Variable.

// KOTLIN
val a = 'A' // Aðeins er gerð ályktun um „bleikju“ gerð
var b = 'B' // Ályktað er um „bleikju“ gerð
b = 'C'

2. Strengjasniðmát:

Í Java notuðum við String.format til að forsníða strengi

// JAVA
int a = 20;
final String t1 = String.format ("Amy aldur er% d", a);
a = 25;
final String t2 = String.format ("% s, nú er% d.", t1.replace ("er", "var"), a);

Í Kotlin getum við notað tjáningu í sniðmát.

// KOTLIN
var a = 20
val t1 = "Amy aldur er $ a"
a = 25
val t2 = "$ {t1.replace (" er "," var ")}, nú er $ a."

Sjáðu muninn, Kotlin er svo mikið læsilegur og hreinn.

3. Null öryggi (Nullable tegundir og ekki Null gerðir)

Í Java er allt sjálfgefið null. Svo við þurftum mörg eftirlit til að forðast NPE

// JAVA
String name = null;

// Örugg leið til að forðast NPE
ef (null! = nafn) {
    int lengd = nafn. lengd ();
}
// Kastar NPE
int length2 = name.length ();

Gerð Kotlins miðar að því að útrýma hættu á núlltilvísunum í kóða, einnig þekkt sem Billion Dollar Mistake.

Venjulegur strengur getur ekki haldið númeri, en til að leyfa nullable strengi verðum við að gefa tegund sem streng?

// KOTLIN
val nafn: String = "Java"
name = null // Compiler Villa
val lastName: String? = "Kotlin"
eftirnafn = null // Virkar fínt

Meðan aðgangur er að eiginleikum breytanna mun venjulegur strengur ekki henda NPE heldur String? mun henda NPE.

Það eru nokkrar leiðir til að forðast það:

  • Notkun if-annars Normal Check
// Venjulegt eftirlit
val lengd = ef (LastName! = null) LastName.length annars -1
  • Notarðu SafeCall?. Rekstraraðili (Einn besti þátturinn í Kotlin)
// Safe Call
val lengd = eftirnafn? .lengd // Úttak: lengd fornafns eða núll

Þetta skilar síðastnafni.lengd, ef síðastnafn er ekki núll, annars null. Örugg símtöl ?. eru virkilega gagnlegar í keðju tilvísana eins og emp? .addr? .house Ef einhver af eiginleikunum er null, þá skilar hún null, en ekki NPE.

Ef við viljum ekki skila null og viljum skila einhverju sjálfgefnu gildi. Við getum notað Elvis rekstraraðila?:

// Notkun Elvis rekstraraðila
val lengd = eftirnafn?. lengd?: -1 // Úttak: síðustu nafn lengd eða -1
  • Notar !! Rekstraraðili (fyrir NPE unnendur)
// Notkun !! Rekstraraðili
val lengd = eftirnafn !! .lengd // Kastaðu NPE, ef síðastnafn er null

4. Sláðu inn athugun og sjálfvirkan steypu

Í Java notum við instofof til að athuga gerð og verðum síðan að slá inn cast til að fá aðgang að eiginleikum þess.

// JAVA
ef (nafn dæmi of String) {
    int lengd = ((strengur) nafn). lengd ();
}

Í Kotlin notum við er að athuga gerð og gerð þýðanda snjall gerð. Ógnvekjandi

// KOTLIN
ef (nafn er band) {
    val lengd = nafn. lengd
}

Nánari upplýsingar eru hér.

5. Þegar tjáning

Fyrir dæmi: Ég vil finna að hluturinn er 1 eða 5 eða strengur eða einhver önnur tegund.

Í Java verðum við að nota instansof & skipta til að framkvæma ofangreint verkefni.

// JAVA
einka String switchExample (Nafn hlutar) {
    ef (heiti dæmi af heiltölu) {
        Heiltala tempInt = (Heiltala) nafn;
        skipta (tempInt) {
            mál 1:
            mál 5:
                skila „1 eða 5“;
            sjálfgefið:
                skila „Ekki 1 eða 5“;
        }
    } annað ef (nafn dæmi strengja) {
        skila „Streng“;
    }
    skila „Ekki Int eða String“;
}

Þegar tjáning gerir það svo einfalt í Kotlin. Það er sjálfvirk gerð útgerð og við getum notað svo mörg orð í því. Ofan á það er það svo mikið læsilegt.

// KOTLIN
skemmtilegt þegar dæmi (nafn: Allir): Strengur =
        hvenær (nafn) {
            1, 5 -> "1 eða 5"
            er Int -> "Ekki 1 eða 5"
            er strengur -> "strengur"
            annars -> "Ekki Int eða String"
        }

6. Bekkir

Í Java verðum við að búa til getter og setjara til að fá aðgang að eignunum í bekknum.

// JAVA
Viðskiptavinur almenns flokks {
    einkastrengsheiti;

    almennur viðskiptavinur (strengjasafn) {
        this.name = nafn;
    }

    public String getName () {
        skilaheiti;
    }

    opinbert tóm sett (Streng nafn) {
        this.name = nafn;
    }
}

Í Kotlin, ekki fleiri getters og landnemar. En við getum búið til, ef þú vilt stilla sérsniðna.

// KOTLIN
bekk viðskiptavinur (var nafn: strengur)

Þetta er best í Kotlin. Þegar ég sá þetta kom eitt orð upp í huga minn VÁ !!! Það er æðislegt

Svo að aðeins stutt yfirlit yfir það sem gerir líf okkar betra. Takk fyrir að lesa fyrstu færsluna mína í Medium. Þú getur fengið aðgang að öllum ofangreindum kóðaútgáfum í hlekknum.

Ef þú vilt byrja að nota Kotlin, vinsamlegast skoðaðu opinber skjöl þeirra. Það er mjög gott.

Fylgdu mér á miðli eða Twitter til að sjá fleiri uppfærslur. Skildu hugsanir þínar í athugasemdahlutanum eða komdu til mín á Twitter og ég mun halda áfram að bæta við seríunni.

Ef þér líkar það, vinsamlegast mundu að klappa. Ef þú heldur á klapphnappinn geturðu skilið eftir fleiri klapp.