Razlika između var u Kotlinu i Javi 10
1. Uvod
U ovom ćemo kratkom vodiču pokriti razlike između var ključne riječi u Javi i Kotlinu.
Pokrivamo identifikator var na Javi detaljnije u našem članku Java 10 LocalVariable Type-Inference i govorimo o ključnoj riječi var u Kotlinu u našem članku Kotlin const, var i val Ključne riječi.
2. Izborna deklaracija o tipu u odnosu na deklaraciju bez tipa
2.1. Kotlin
Ako istovremeno proglasimo promjenjivu varijablu i inicijaliziramo je, ne trebamo navesti vrstu:
var myVariable = 1
Međutim, to možemo učiniti ako odlučimo:
var myVariable: Int = 1
Ako želimo proglasiti varijablu bez da je izravno inicijaliziramo, moramo navesti njezin tip, a vrijednost možemo dodijeliti kasnije:
var myVariable: Int myVariable = 1
2.2. Java
U Javi možemo samo koristiti var ako varijablu inicijaliziramo na licu mjesta, a ne možemo pružiti informacije o tipu čak i ako želimo:
var myVariable = 1;
Sljedeće je nevaljano:
var myVariable; myVariable = 1;
I dobivamo pogrešku u vremenu prevođenja:
Nije moguće zaključiti tip: 'var' na varijabli bez inicijalizatora
3. Ključna riječ vs identifikator
U Kotlinu, var je ključna riječ, što znači da je ne možemo koristiti kao naziv varijable, parametra, metode ili klase. Suprotno tome, Java 10 definira var kao identifikator s posebnim značenjem.
To znači da u Javi 10 i dalje možemo definirati varijablu, parametar ili metodu s imenom var:
public void var () {// učiniti nešto} public void method (int var) {// učiniti nešto} public void method () {int var = 1; // učini nešto }
Imajte na umu da od Jave 10 više nije moguće definirati klasu s imenom var:
javna statička klasa var {}
Gornji kod rezultira pogreškom u vremenu kompajliranja:
Pogreška: (1, 1) java: 'var' ovdje nije dopušten od izdanja 10, 'var' je ograničeno ime tipa i ne može se koristiti za deklaracije tipa
To osigurava kompatibilnost sa starijim verzijama Jave.
4. Promjenjivost
Varijabla deklarirana s var u Kotlinu je uvijek promjenjiv, dok je varijabla deklarirana sa var u Javi može biti promjenjiv ili konačan:
var mutableInt = 1; konačna var nepromjenjivaInt = 1;
U Kotlinu nema konačni ključna riječ - konačne varijable deklariraju se s val umjesto toga:
val nepromjenjivInt = 1
5. Globalna vs lokalna upotreba
5.1. Kotlin
U Kotlinu možemo koristiti var za deklariranje globalnih i lokalnih varijabli, kao i članova klase:
var myGlobalVar = 3 klase MyClass {var myVar = 3 javna zabava myFunction (): Int {var myVariable = 3 return myVariable}}
5.2. Java
U Javi možemo koristiti var samo za deklariranje lokalnih varijabli:
javna klasa MyClass {// nije moguće za varijable člana // private var myVar = 1; javni int myFunction () {var myVariable = 3; return myVariable; }}
6. Zaključak
U ovom smo članku pogledali razliku između var u Kotlinu i Javi. Iako oboje izgledaju vrlo slično, između njih postoje temeljne razlike.
Najvažnija je razlika u tome var u Kotlinu se radi o promjenjivosti i var u Javi govori o zaključivanju tipa.