Perbedaan antara var di Kotlin dan Java 10

1. Perkenalan

Dalam tutorial singkat ini, kami akan membahas perbedaan antara kata kunci var di Java dan Kotlin.

Kami membahas pengenal var di Java secara lebih mendalam di artikel kami Java 10 LocalVariable Type-Inference, dan kami berbicara tentang kata kunci var di Kotlin di artikel kami Kotlin const, var, dan val Kata kunci.

2. Deklarasi Tipe Opsional vs Deklarasi Tanpa Tipe

2.1. Kotlin

Jika kita mendeklarasikan variabel yang bisa berubah dan menginisialisasinya pada saat yang sama, kita tidak perlu menentukan jenisnya:

var myVariable = 1

Namun, kami dapat melakukannya jika kami memilih untuk:

var myVariable : Int = 1

Jika kita ingin mendeklarasikan variabel tanpa menginisialisasinya secara langsung, kita perlu menentukan tipenya , dan kita dapat menetapkan nilainya nanti:

var myVariable : Int myVariable = 1

2.2. Jawa

Di Java, kita hanya bisa menggunakan var jika kita menginisialisasi variabel on-the-spot, dan kita tidak bisa memberikan informasi tipe bahkan jika kita ingin:

var myVariable = 1;

Berikut ini tidak valid:

var myVariable; myVariable = 1;

Dan kami mendapatkan kesalahan waktu kompilasi:

Cannot infer type: 'var' on variable without initializer

3. Kata Kunci vs Pengenal

Di Kotlin, var adalah kata kunci, yang berarti kita tidak dapat menggunakannya sebagai nama variabel, parameter, metode, atau kelas. Sebaliknya, Java 10 mendefinisikan var sebagai pengenal dengan arti khusus.

Artinya di Java 10, kita masih bisa mendefinisikan variabel, parameter, atau metode dengan nama var :

public void var() {     // do something } public void method(int var) {     // do something } public void method() {     int var = 1;     // do something }

Perlu diingat bahwa pada Java 10, tidak mungkin lagi mendefinisikan kelas dengan nama var :

public static class var { }

Kode di atas menghasilkan kesalahan waktu kompilasi:

Error:(1, 1) java: 'var' not allowed here   as of release 10, 'var' is a restricted type name and cannot be used for type declarations

Ini memastikan kompatibilitas mundur dengan versi Java yang lebih lama.

4. Dapat berubah

Variabel yang dideklarasikan dengan var di Kotlin selalu bisa berubah, sedangkan variabel yang dideklarasikan dengan var di Java bisa berubah atau final:

var mutableInt = 1; final var immutableInt = 1;

Dalam Kotlin, tidak ada akhir kata kunci - variabel akhir dideklarasikan dengan val sebagai gantinya:

val immutableInt = 1

5. Penggunaan Global vs Lokal

5.1. Kotlin

Di Kotlin, kita dapat menggunakan var untuk mendeklarasikan variabel global dan lokal, serta anggota kelas:

var myGlobalVar = 3 class MyClass {     var myVar = 3         public fun myFunction() : Int {         var myVariable = 3         return myVariable     } }

5.2. Jawa

Di Java, kita dapat menggunakan var hanya untuk mendeklarasikan variabel lokal:

public class MyClass {     //not possible for member variables     //private var myVar = 1;     public int myFunction() {         var myVariable = 3;         return myVariable;     } }

6. Kesimpulan

Pada artikel ini, kami melihat perbedaan antara var di Kotlin dan Java. Meski keduanya terlihat sangat mirip, ada perbedaan mendasar di antara keduanya.

Perbedaan yang paling penting adalah var di Kotlin adalah tentang mutabilitas, dan var di Java tentang inferensi tipe.