Rozdiel medzi var v Kotlin a Java 10
1. Úvod
V tomto krátkom návode sa dozvieme rozdiely medzi nimi var kľúčové slová v jazykoch Java a Kotlin.
Zakrývame identifikátor var v Jave podrobnejšie v našom článku Java 10 LocalVariable Type-Inference a hovoríme o kľúčovom slove var v Kotline v našom článku Kotlin const, var a val Kľúčové slová.
2. Nepovinné vyhlásenie typu vs. žiadne vyhlásenie typu
2.1. Kotlin
Ak deklarujeme premenlivú premennú a inicializujeme ju súčasne, nemusíme zadávať typ:
var myVariable = 1
Môžeme to však urobiť, ak sa rozhodneme:
var myVariable: Int = 1
Ak chceme deklarovať premennú bez jej priamej inicializácie, musíme určiť jej typ, a hodnotu môžeme priradiť neskôr:
var myVariable: Int myVariable = 1
2.2. Java
V Jave môžeme používať iba var ak inicializujeme premennú na mieste a nemôžeme poskytnúť informácie o type, aj keď chceme:
var myVariable = 1;
Nasledujúce položky sú neplatné:
var myVariable; myVariable = 1;
A dostaneme chybu kompilácie:
Nie je možné odvodiť typ: „var“ na premennej bez inicializátora
3. Kľúčové slovo vs identifikátor
V Kotline var je kľúčové slovo, čo znamená, že ho nemôžeme použiť ako názov premennej, parametra, metódy alebo triedy. Naopak Java 10 definuje var ako identifikátor s osobitným významom.
To znamená, že v Jave 10 môžeme stále definovať premennú, parameter alebo metódu s názvom var:
public void var () {// urobte niečo} metóda public void (int var) {// urobte niečo} metóda public void () {int var = 1; // urob niečo }
Nezabudnite, že od verzie Java 10 už nie je možné definovať triedu s názvom var:
verejná statická trieda var {}
Výsledkom vyššie uvedeného kódu je chyba pri kompilácii:
Chyba: (1, 1) java: 'var' tu nie je povolený od vydania 10, 'var' je obmedzený názov typu a nemožno ho použiť na deklarácie typu
To zaisťuje spätnú kompatibilitu so staršími verziami Java.
4. Premenlivosť
Premenná deklarovaná s var v Kotline je vždy premenlivý, zatiaľ čo premenná je deklarovaná s var v Jave môže byť premenlivé alebo konečné:
var mutableInt = 1; final var immutableInt = 1;
V Kotline nie je č konečné kľúčové slovo - konečné premenné sú deklarované s val namiesto toho:
val immutableInt = 1
5. Globálne vs lokálne použitie
5.1. Kotlin
V Kotline môžeme použiť var deklarovať globálne a lokálne premenné, ako aj členov triedy:
var myGlobalVar = 3 class MyClass {var myVar = 3 public fun myFunction (): Int {var myVariable = 3 return myVariable}}
5.2. Java
V Jave môžeme použiť var iba na deklaráciu lokálnych premenných:
verejná trieda MyClass {// nie je možné pre členské premenné // súkromné var myVar = 1; public int myFunction () {var myVariable = 3; vrátiť myVariable; }}
6. Záver
V tomto článku sme sa pozreli na rozdiel medzi var v Kotline a Jave. Aj keď vyzerajú veľmi podobne, existujú medzi nimi zásadné rozdiely.
Najdôležitejší rozdiel je v tom var v Kotline ide o premenlivosť a var v Jave je o odvodení typu.