1. Pengenalan
Dalam tutorial ringkas ini, kita akan membahas perbezaan antara kata kunci var di Java dan Kotlin.
Kami membahas var pengenal di Java dengan lebih mendalam dalam artikel kami Java 10 LocalVariable Type-Inference, dan kami membincangkan tentang kata kunci var di Kotlin dalam artikel kami Kotlin const, var, dan val Keywords.
2. Pernyataan Jenis Pilihan vs Pengisytiharan Jenis Tidak
2.1. Kotlin
Sekiranya kita menyatakan pemboleh ubah yang dapat diubah dan menginisialisasi pada masa yang sama, kita tidak perlu menentukan jenisnya:
var myVariable = 1
Namun, kami dapat melakukannya sekiranya kami memilih untuk:
var myVariable : Int = 1
Sekiranya kita ingin menyatakan pemboleh ubah tanpa menginisialisasi secara langsung, kita perlu menentukan jenisnya , dan kita dapat memberikan nilai kemudian:
var myVariable : Int myVariable = 1
2.2. Jawa
Di Jawa, kita hanya dapat menggunakan var jika kita menginisialisasi pemboleh ubah di tempat, dan kita tidak dapat memberikan jenis maklumat walaupun kita ingin:
var myVariable = 1;
Perkara berikut tidak sah:
var myVariable; myVariable = 1;
Dan kami mendapat ralat waktu kompilasi:
Cannot infer type: 'var' on variable without initializer
3. Kata kunci vs Pengecam
Di Kotlin, var adalah kata kunci, yang bermaksud kita tidak dapat menggunakannya sebagai nama pemboleh ubah, parameter, kaedah atau kelas. Sebaliknya, Java 10 mendefinisikan var sebagai pengenal dengan makna khas.
Itu artinya di Java 10, kita masih dapat menentukan 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 bahawa, dari Java 10, tidak mungkin lagi untuk menentukan kelas dengan nama var :
public static class var { }
Kod di atas menghasilkan ralat 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 keserasian ke belakang dengan versi Java yang lebih lama.
4. Kebolehubahan
Pemboleh ubah yang dinyatakan dengan var di Kotlin selalu berubah, sementara pemboleh ubah yang dinyatakan dengan var di Java dapat berubah atau terakhir:
var mutableInt = 1; final var immutableInt = 1;
Dalam Kotlin, tidak ada akhir kata kunci - pembolehubah akhir diisytiharkan dengan val sebaliknya:
val immutableInt = 1
5. Penggunaan Global vs Tempatan
5.1. Kotlin
Di Kotlin, kita dapat menggunakan var untuk menyatakan pemboleh ubah global dan tempatan, 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 menyatakan pemboleh ubah tempatan:
public class MyClass { //not possible for member variables //private var myVar = 1; public int myFunction() { var myVariable = 3; return myVariable; } }
6. Kesimpulannya
Dalam artikel ini, kami melihat perbezaan antara var di Kotlin dan Java. Walaupun keduanya kelihatan sangat mirip, terdapat perbezaan mendasar antara keduanya.
Perbezaan yang paling penting adalah bahawa var di Kotlin adalah mengenai kebolehubahan, dan var di Java adalah mengenai inferensi jenis.