Forskjellen mellom var i Kotlin og Java 10

1. Introduksjon

I denne korte veiledningen vil vi dekke forskjellene mellom var nøkkelord i Java og Kotlin.

Vi dekker identifikatoren var i Java nærmere i artikkelen Java 10 LocalVariable Type-Inference, og vi snakker om nøkkelordet var i Kotlin i vår artikkel Kotlin const, var og val Keywords.

2. Valgfri typedeklarasjon vs ingen typedeklarasjon

2.1. Kotlin

Hvis vi erklærer en foranderlig variabel og initialiserer den samtidig, trenger vi ikke å spesifisere typen:

var myVariable = 1

Vi kan imidlertid gjøre det hvis vi velger å:

var myVariable: Int = 1

Hvis vi vil deklarere en variabel uten å initialisere den direkte, må vi spesifisere dens type, og vi kan tildele en verdi senere:

var myVariable: Int myVariable = 1

2.2. Java

I Java kan vi bare bruke var hvis vi initialiserer variabelen på stedet, og vi ikke kan gi typeinformasjon selv om vi vil:

var myVariable = 1;

Følgende er ugyldige:

var myVariable; myVariable = 1;

Og vi får en kompileringstidsfeil:

Kan ikke utlede typen: 'var' på variabel uten initialisering

3. Keyword vs Identifier

I Kotlin, var er et nøkkelord, som betyr at vi ikke kan bruke det som navnet på en variabel, parameter, metode eller klasse. I motsetning definerer Java 10 var som en identifikator med spesiell betydning.

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

offentlig ugyldig var () {// gjør noe} offentlig ugyldig metode (int var) {// gjør noe} offentlig ugyldig metode () {int var = 1; // gjør noe }

Husk at det fra og med Java 10 ikke lenger er mulig å definere en klasse med navnet var:

offentlig statisk klasse var {}

Ovennevnte kode resulterer i en kompileringsfeil:

Feil: (1, 1) java: 'var' er ikke tillatt her fra versjon 10, 'var' er et begrenset type navn og kan ikke brukes til typedeklarasjoner

Dette sikrer bakoverkompatibilitet med eldre Java-versjoner.

4. Mutabilitet

En variabel erklært med var i Kotlin er alltid foranderlig, mens en variabel erklært med var i Java kan være foranderlig eller endelig:

var mutableInt = 1; final var immutableInt = 1;

I Kotlin er det ingen endelig nøkkelord - endelige variabler deklareres med val i stedet:

val immutableInt = 1

5. Global vs lokal bruk

5.1. Kotlin

I Kotlin kan vi bruke var å erklære globale og lokale variabler, samt klassemedlemmer:

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

5.2. Java

I Java kan vi bruke var bare for å erklære lokale variabler:

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

6. Konklusjon

I denne artikkelen så vi på forskjellen mellom var i Kotlin og Java. Selv om begge ser veldig like ut, er det grunnleggende forskjeller mellom de to.

Den viktigste forskjellen er at var i Kotlin handler om mutabilitet, og var i Java handler om type inferens.


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