In deze zelfstudie leert u over variabelen, hoe u ze kunt maken en basisdatatypen die Kotlin ondersteunt voor het maken van variabelen.
Zoals u weet, is een variabele een locatie in het geheugen (opslaggebied) om gegevens op te slaan.
Om het opslaggebied aan te geven, moet elke variabele een unieke naam (identifier) krijgen. Meer informatie over Hoe een variabele een naam geven in Kotlin?
Hoe declareer je een variabele in Kotlin?
Om een variabele in Kotlin te declareren, wordt een van de var
of het val
trefwoord gebruikt. Hier is een voorbeeld:
var language = "Frans" val score = 95
Het verschil in het gebruik van var en val wordt later in het artikel besproken. Laten we ons voorlopig concentreren op de declaratie van variabelen.
Hier is taal een variabele van het type String
en score
is het een variabele van het type Int
. U hoeft het type variabelen niet op te geven; Kotlin doet dat impliciet voor u. De compiler weet dit door de initialisatie-expressie ("Frans" is a String
, en 95 is een geheel getal in het bovenstaande programma). Dit wordt bij het programmeren type-inferentie genoemd.
U kunt het type echter expliciet specificeren als u:
var taal: String = "Frans" val score: Int = 95
We hebben de variabele geïnitialiseerd tijdens de declaratie in bovenstaande voorbeelden. Het is echter niet nodig. U kunt de variabele declareren en het type specificeren in de ene instructie, en de variabele later in het programma initialiseren in een andere instructie.
var language: String // variabele declaratie van het type String… language = "French" // variabele initialisatie val score: Int // variabele declaratie van het type Int… score = 95 // variabele initialisatie
Hier zijn enkele voorbeelden die tot fouten leiden.
var language // Fouttaal = "Frans"
Hier wordt het type taalvariabele niet expliciet gespecificeerd, noch wordt de variabele geïnitialiseerd tijdens de declaratie.
var language: String language = 14 // Fout
Hier proberen we 14 (integerwaarde) toe te wijzen aan een variabele van een ander type ( String
).
Verschil tussen var en val
- val (onveranderlijke verwijzing) - De variabele die is gedeclareerd met
val
trefwoord kan niet worden gewijzigd nadat de waarde is toegewezen. Het is vergelijkbaar met de laatste variabele in Java. - var (Veranderlijke referentie) - De variabele die wordt gedeclareerd met
var
trefwoord kan later in het programma worden gewijzigd. Het komt overeen met een gewone Java-variabele.
Hier zijn enkele voorbeelden:
var language = "French" language = "Duits"
Hier wordt de language
variabele opnieuw toegewezen aan het Duits. Omdat de variabele wordt gedeclareerd met var
, werkt deze code perfect.
val language = "Frans" language = "Duits" // Fout
U kunt de taalvariabele niet opnieuw toewijzen aan German
in het bovenstaande voorbeeld, omdat de variabele wordt gedeclareerd met val
.
Nu je weet wat Kotlin-variabelen zijn, is het tijd om verschillende waarden te leren die een Kotlin-variabele kan aannemen.
Kotlin-basistypen
Kotlin is een statisch getypeerde taal zoals Java. Dat wil zeggen, het type variabele is bekend tijdens het compileren. Bijvoorbeeld,
val taal: Int val marks = 12.3
Hier weet de compiler dat de taal van het type is Int
, en markeringen zijn van het type Double
vóór het compileren.
De ingebouwde typen in Kotlin kunnen worden gecategoriseerd als:
- Getallen
- Tekens
- Booleans
- Arrays
Type nummer
Nummers in Kotlin zijn vergelijkbaar met Java. Er zijn 6 ingebouwde typen die getallen vertegenwoordigen.
- Byte
- Kort
- Int
- Lang
- Vlotter
- Dubbele
1. Byte
- Het
Byte
gegevenstype kan waarden hebben van -128 tot 127 (8-bits geheel getal met twee-complement met teken). - Het wordt gebruikt in plaats van
Int
of andere gegevenstypen met gehele getallen om geheugen te besparen als het zeker is dat de waarde van een variabele binnen (-128, 127) valt - Voorbeeld:
fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )
Wanneer u het programma uitvoert, is de uitvoer:
112
2. Kort
- Het
Short
gegevenstype kan waarden hebben van -32768 tot 32767 (16-bits geheel getal met twee-complement met teken). - Het wordt gebruikt in plaats van andere gegevenstypen met gehele getallen om geheugen te besparen als het zeker is dat de waarde van de variabele binnen (-32768, 32767) ligt.
- Voorbeeld:
fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )
Wanneer u het programma uitvoert, is de uitvoer:
-11245
3. Int
- Het
Int
gegevenstype kan waarden hebben van tot (32-bits geheel getal met twee-complement met teken).-231
231-1
- Voorbeeld:
fun main(args : Array) ( val score: Int = 100000 println("$score") )
Wanneer u het programma uitvoert, is de uitvoer:
100000
Als u een geheel getal tussen tot aan een variabele toewijst zonder expliciet het type op te geven, is de variabele van het type. Bijvoorbeeld,-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
Een array is een container die gegevens (waarden) van één type bevat. U kunt bijvoorbeeld een array maken die 100 typewaarden kan bevatten Int
.
In Kotlin worden arrays vertegenwoordigd door de Array
klasse. De klasse heeft get
en set
functies, size
eigenschap en een paar andere nuttige lidfuncties.
Ga voor meer informatie over arrays naar: Kotlin Arrays
Kotlin-snaren
In Kotlin worden strings vertegenwoordigd door de String
klasse. De letterlijke tekenreeks zoals "dit is een tekenreeks" wordt geïmplementeerd als een instantie van deze klasse.
Ga voor meer informatie over snaren naar: Kotlin Strings
Aanbevolen metingen
- Typeconversie in Kotlin
- Slimme casts in Kotlin
- Kotlin nullable types