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.