Különbség a Kotlin és a Java 10 var között
1. Bemutatkozás
Ebben a rövid bemutatóban kitérünk a különbségekre var kulcsszavak Java-ban és Kotlinban.
Lefedjük az azonosítót var a Java-ban részletesebben a Java 10 LocalVariable Type-Inference cikkünkben, és beszélünk a kulcsszóról var a Kotlin cikkben Kotlin const, var és val Kulcsszavak.
2. Opcionális típusnyilatkozat vs Nincs típusnyilatkozat
2.1. Kotlin
Ha egy megváltoztatható változót deklarálunk és egyidejűleg inicializálunk, akkor nem kell megadnunk a típust:
var myVariable = 1
Megtehetjük azonban, ha úgy döntünk, hogy:
var myVariable: Int = 1
Ha egy változót közvetlenül inicializálni akarunk, akkor meg kell adnunk a típusát, és később hozzárendelhetünk egy értéket:
var myVariable: Int myVariable = 1
2.2. Jáva
A Java-ban csak használni tudjuk var ha inicializáljuk a változót a helyszínen, és típusinformációt akkor sem tudunk megadni, ha szeretnénk:
var myVariable = 1;
A következő érvénytelen:
var myVariable; myVariable = 1;
És fordítási idő hibát kapunk:
A következõ típusra nem lehet következtetni: változó inicializáló nélkül
3. Kulcsszó vs azonosító
Kotlinban, var egy kulcsszó, ami azt jelenti, hogy nem használhatjuk változó, paraméter, módszer vagy osztály neveként. Ezzel szemben a Java 10 meghatározza var mint különleges jelentésű azonosító.
Ez azt jelenti, hogy a Java 10-ben továbbra is meghatározhatunk egy változót, paramétert vagy metódust a névvel var:
public void var () {// csinál valamit} public void módszer (int var) {// csinál valamit} public void módszer () {int var = 1; // csinálj valamit }
Ne feledje, hogy a Java 10-től kezdve már nem lehet osztályt definiálni a névvel var:
public static class var {}
A fenti kód fordítási időbeli hibát eredményez:
Hiba: (1, 1) java: A „var” itt nem engedélyezett a 10-es kiadástól kezdve, a „var” egy korlátozott típusú név, és nem használható típusdeklarációkhoz
Ez biztosítja a visszafelé kompatibilitást a régebbi Java verziókkal.
4. Változtathatóság
A -vel deklarált változó var Kotlinban mindig mutálható, míg a változóval deklarált változó var Java-ban lehet változtatható vagy végleges:
var mutableInt = 1; végső var megváltoztathatatlanInt = 1;
Kotlinban nincs végső kulcsszó - a végső változókat a val helyette:
val megváltoztathatatlanInt = 1
5. Globális vs helyi használat
5.1. Kotlin
Kotlinban használhatjuk var a globális és lokális változók, valamint az osztálytagok deklarálása:
var myGlobalVar = 3 osztály MyClass {var myVar = 3 nyilvános szórakozás myFunction (): Int {var myVariable = 3 return myVariable}}
5.2. Jáva
A Java-ban használhatjuk var csak a helyi változók deklarálásához:
public class MyClass {// tagváltozók esetén nem lehetséges // private var myVar = 1; public int myFunction () {var myVariable = 3; adja vissza myVariable; }}
6. Következtetés
Ebben a cikkben megvizsgáltuk a különbséget var Kotlinban és Java-ban. Annak ellenére, hogy mindkettő nagyon hasonlónak tűnik, alapvető különbségek vannak a kettő között.
A legfontosabb különbség az var Kotlinban a mutabilitásról szól, és var a Java-ban a típus következtetéséről szól.