Forskellen mellem var i Kotlin og Java 10

1. Introduktion

I denne korte vejledning vil vi dække forskelle mellem var nøgleord i Java og Kotlin.

Vi dækker identifikatoren var i Java nærmere i vores artikel Java 10 LocalVariable Type-Inference, og vi taler om nøgleordet var i Kotlin i vores artikel Kotlin const, var og val Keywords.

2. Valgfri typedeklaration vs ingen typedeklaration

2.1. Kotlin

Hvis vi erklærer en mutabel variabel og initialiserer den på samme tid, behøver vi ikke angive typen:

var myVariable = 1

Vi kan dog gøre det, hvis vi vælger at:

var myVariable: Int = 1

Hvis vi vil erklære en variabel uden at initialisere den direkte, skal vi specificere dens type, og vi kan tildele en værdi senere:

var myVariable: Int myVariable = 1

2.2. Java

I Java kan vi kun bruge var hvis vi initialiserer variablen på stedet, og vi ikke kan give typeoplysninger, selvom vi vil:

var myVariable = 1;

Følgende er ugyldige:

var myVariable; myVariable = 1;

Og vi får en kompileringstidsfejl:

Kan ikke udlede typen: 'var' på variablen uden initialisering

3. Nøgleord vs identifikator

I Kotlin, var er et nøgleord, hvilket betyder, at vi ikke kan bruge det som navnet på en variabel, parameter, metode eller klasse. I modsætning hertil definerer Java 10 var som en identifikator med særlig betydning.

Det betyder, at vi i Java 10 stadig kan definere en variabel, parameter eller metode med navnet var:

offentlig ugyldig var () {// gør noget} offentlig ugyldig metode (int var) {// gør noget} offentlig ugyldig metode () {int var = 1; // gør noget }

Husk, at det fra Java 10 ikke længere er muligt at definere en klasse med navnet var:

offentlig statisk klasse var {}

Ovenstående kode resulterer i en kompileringstidsfejl:

Fejl: (1, 1) java: 'var' er ikke tilladt her fra frigivelse 10, 'var' er et begrænset typenavn og kan ikke bruges til typedeklarationer

Dette sikrer bagudkompatibilitet med ældre Java-versioner.

4. Mutabilitet

En variabel erklæret med var i Kotlin kan altid ændres, mens en variabel erklæres med var i Java kan være ændret eller endelig:

var mutableInt = 1; final var immutableInt = 1;

I Kotlin er der ingen endelig nøgleord - endelige variabler erklæres med val i stedet:

val immutableInt = 1

5. Global vs lokal anvendelse

5.1. Kotlin

I Kotlin kan vi bruge var at erklære globale og lokale variabler såvel som klassemedlemmer:

var myGlobalVar = 3 klasse MyClass {var myVar = 3 offentlig sjov myFunction (): Int {var myVariable = 3 return myVariable}}

5.2. Java

I Java kan vi bruge var kun for at erklære lokale variabler:

offentlig klasse MyClass {// ikke mulig for medlemsvariabler // private var myVar = 1; public int myFunction () {var myVariable = 3; returner minVariabel; }}

6. Konklusion

I denne artikel så vi på forskellen mellem var i Kotlin og Java. Selvom begge ser meget ens ud, er der grundlæggende forskelle mellem de to.

Den vigtigste forskel er det var i Kotlin handler om mutabilitet, og var i Java handler om typeinferens.


$config[zx-auto] not found$config[zx-overlay] not found