I denna handledning lär du dig om variabler, hur du skapar dem och grundläggande datatyper som Kotlin stöder för att skapa variabler.
Som du vet är en variabel en plats i minnet (lagringsområde) för att hålla data.
För att ange lagringsområdet ska varje variabel ges ett unikt namn (identifierare). Läs mer om hur man namnge en variabel i Kotlin?
Hur deklarerar jag en variabel i Kotlin?
För att deklarera en variabel i Kotlin används endera var
eller val
nyckelord. Här är ett exempel:
var språk = "franska" val poäng = 95
Skillnaden i att använda var och val diskuteras senare i artikeln. Låt oss för närvarande fokusera på variabeldeklaration.
Här är språk en variabel av typen String
och score
en variabel av typen Int
. Du behöver inte ange vilken typ av variabler; Kotlin gör det implicit för dig. Kompilatorn vet detta genom initialiseringsuttryck ("franska" är a String
, och 95 är ett heltal i ovanstående program). Detta kallas typinferens vid programmering.
Du kan dock uttryckligen ange typen om du vill:
var språk: String = "franska" val poäng: Int = 95
Vi har initierat variabeln under deklarationen i ovanstående exempel. Det är dock inte nödvändigt. Du kan deklarera variabel och ange dess typ i ett uttalande och initiera variabeln i ett annat uttalande senare i programmet.
var språk: String // variabeldeklaration av typ String … språk = "franska" // variabel initialisering valpoäng: Int // variabeldeklaration av typ Int … poäng = 95 // variabel initialisering
Här är några exempel som resulterar i fel.
var språk // Fel språk = "franska"
Här specificeras inte typen av språkvariabel uttryckligen, och inte heller initieras variabeln under deklarationen.
var språk: Strängspråk = 14 // Fel
Här försöker vi tilldela 14 (heltal) till variabler av annan typ ( String
).
Skillnad mellan var och val
- val (Immutable reference) - Variabeln som deklareras med hjälp av
val
nyckelord kan inte ändras när värdet har tilldelats. Det liknar den slutliga variabeln i Java. - var (Muterbar referens) - Den variabel som deklareras med hjälp av
var
nyckelord kan ändras senare i programmet. Det motsvarar en vanlig Java-variabel.
Här är några exempel:
var språk = "franska" språk = "tyska"
Här language
tilldelas variabeln till tyska. Eftersom variabeln deklareras med var
fungerar den här koden perfekt.
val språk = "franska" språk = "tyska" // Fel
Du kan inte tilldela språkvariabler till German
i ovanstående exempel eftersom variabeln deklareras med val
.
Nu vet du vad Kotlin-variabler är, det är dags att lära sig olika värden som en Kotlin-variabel kan ta.
Kotlin Grundtyper
Kotlin är ett statligt skrivet språk som Java. Det vill säga typen av variabel är känd under kompileringstiden. Till exempel,
val språk: Int val märken = 12.3
Här vet kompilatorn att språket är av typ Int
och märken är av typen Double
före kompileringstiden.
De inbyggda typerna i Kotlin kan kategoriseras som:
- Tal
- Tecken
- Booléer
- Arrayer
Nummertyp
Siffror i Kotlin liknar Java. Det finns 6 inbyggda typer som representerar siffror.
- Byte
- Kort
- Int
- Lång
- Flyta
- Dubbel
1. Byte
- Den
Byte
datatyp kan ha värden från -128 till 127 (8-bitars tecknat två komplement heltal). - Det används istället för
Int
eller andra heltal datatyper för att spara minne om det är säkert att värdet på en variabel ligger inom (-128, 127) - Exempel:
fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )
När du kör programmet blir resultatet:
112
2. Kort
- Den
Short
datatypen kan ha värden -32.768-32.767 (16-bitars undertecknat tvåkomplement heltal). - Det används istället för andra heltal datatyper för att spara minne om det är säkert att variabelns värde ligger inom (-32768, 32767).
- Exempel:
fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )
När du kör programmet blir resultatet:
-11245
3. Int
- Den
Int
datatypen kan ha värden från till (32-bitars undertecknat tvåkomplement heltal).-231
231-1
- Exempel:
fun main(args : Array) ( val score: Int = 100000 println("$score") )
När du kör programmet blir resultatet:
100000
Om du tilldelar ett heltal mellan till en variabel utan att specifikt specificera dess typ, kommer variabeln att vara av typ. Till exempel,-231
231-1
Int
fun main(args : Array) ( // score is of type Int val score = 10 println("$score") )
If you are using IntelliJ IDEA, you can place cursor inside the variable and press Ctrl + Shift + P
to see its type.
4. Long
- The
Long
data type can have values from-263
to263-1
(64-bit signed two's complement integer). - Example:
fun main(args : Array) ( val highestScore: Long = 9999 println("$highestScore") )
When you run the program, the output will be:
9999
If you assign an integer value greater than 231-1
or less than -231
to a variable (without explicitly specifying its type), the variable will be of Long
type. For example,
val distance = 10000000000 // distance variable of type Long
Similarly, you can use capital letter L to specify that the variable is of type Long
. For example,
val distance = 100L // distance value of type Long
5. Double
- The
Double
type is a double-precision 64-bit floating point. - Example:
fun main(args : Array) ( // distance is of type Double val distance = 999.5 println("$distance") )
When you run the program, the output will be:
999.5
Float
- The
Float
data type is a single-precision 32-bit floating point. Learn more about single precision and double precision floating point if you are interested. - Example:
fun main(args : Array) ( // distance is of type Float val distance = 19.5F println("$distance") )
When you run the program, the output will be:
19.5
Notice that, we have used 19.5F
instead of 19.5
in the above program. It is because 19.5
is a Double
literal, and you cannot assign Double
value to a variable of type Float
.
To tell compiler to treat 19.5
as Float
, you need to use F at the end.
If you are not sure what number value a variable will be assigned in the program, you can specify it as Number
type. This allows you to assign both integer and floating-point value to the variable (one at a time). For example:
fun main(args : Array) ( var test: Number = 12.2 println("$test") test = 12 // Int smart cast from Number println("$test") test = 120L // Long smart cast from Number println("$test") )
When you run the program, the output will be:
12.2 12 120
To learn more, visit: Kotlin smart casts
Char
To represent a character in Kotlin, Char types are used.
Unlike Java, Char types cannot be treated as numbers. Visit this page to learn more about Java char Type.
fun main(args : Array) ( val letter: Char letter = 'k' println("$letter") )
When you run the program, the output will be:
k
In Java, you can do something like:
char letter = 65;
However, the following code gives error in Kotlin.
var letter: Char = 65 // Error
Boolean
- The
Boolean
data type has two possible values, eithertrue
orfalse
. - Example:
fun main(args : Array) ( val flag = true println("$flag") )
Booleans are used in decision making statements (will be discussed in later chapter).
Kotlin Arrays
En matris är en behållare som innehåller data (värden) av en enda typ. Du kan till exempel skapa en matris som kan innehålla 100 Int
typvärden.
I Kotlin representeras matriser av Array
klassen. Klassen har get
och set
funktioner, size
egendom och några andra användbara medlemsfunktioner.
För att lära dig mer om matriser, besök: Kotlin Arrays
Kotlin Strings
I Kotlin representeras strängar av String
klassen. Strängbokstäverna som "detta är en sträng" implementeras som en förekomst av denna klass.
För att lära dig mer om strängar, se: Kotlin Strings
Rekommenderade avläsningar
- Typkonvertering i Kotlin
- Smarta gjutningar i Kotlin
- Kotlin ogiltiga typer