W tym samouczku dowiesz się o zmiennych, jak je tworzyć i podstawowych typach danych, które Kotlin obsługuje do tworzenia zmiennych.
Jak wiesz, zmienna to miejsce w pamięci (obszar przechowywania) do przechowywania danych.
Aby wskazać obszar przechowywania, każdej zmiennej należy nadać niepowtarzalną nazwę (identyfikator). Dowiedz się więcej o tym, jak nazwać zmienną w Kotlinie?
Jak zadeklarować zmienną w Kotlinie?
Aby zadeklarować zmienną w Kotlinie, używane jest słowo kluczowe var
lub val
. Oto przykład:
var language = "francuski" val score = 95
Różnica w używaniu var i val została omówiona w dalszej części artykułu. Na razie skupmy się na deklaracji zmiennej.
Tutaj język jest zmienną typu String
i score
jest zmienną typu Int
. Nie musisz określać typu zmiennych; Kotlin pośrednio robi to za Ciebie. Kompilator wie o tym dzięki wyrażeniu inicjalizatora („francuski” to a String
, a 95 to liczba całkowita w powyższym programie). Nazywa się to wnioskiem o typie w programowaniu.
Możesz jednak jawnie określić typ, jeśli chcesz:
var language: String = "francuski" val score: Int = 95
W powyższych przykładach zainicjowaliśmy zmienną podczas deklaracji. Jednak nie jest to konieczne. Możesz zadeklarować zmienną i określić jej typ w jednej instrukcji, a następnie zainicjować zmienną w innej instrukcji w dalszej części programu.
var język: String // deklaracja zmiennej typu String… język = "francuski" // inicjalizacja zmiennej val score: Int // deklaracja zmiennej typu Int… score = 95 // inicjalizacja zmiennej
Oto kilka przykładów, które prowadzą do błędu.
var language // Error language = "francuski"
W tym przypadku typ zmiennej językowej nie jest jawnie określony ani zmienna nie jest inicjowana podczas deklaracji.
var language: String language = 14 // Błąd
Tutaj próbujemy przypisać 14 (wartość całkowitą) zmiennej innego typu ( String
).
Różnica między var i val
- val (Niezmienne odniesienie) - Zmienna zadeklarowana przy użyciu
val
słowa kluczowego nie może zostać zmieniona po przypisaniu wartości. Jest podobny do końcowej zmiennej w Javie. - var (Mutable reference) - Zmienna zadeklarowana za pomocą
var
słowa kluczowego może być zmieniona później w programie. Odpowiada zwykłej zmiennej Java.
Oto kilka przykładów:
var language = „francuski” language = „niemiecki”
Tutaj language
zmienna jest ponownie przypisywana do języka niemieckiego. Ponieważ zmienna jest zadeklarowana przy użyciu var
, ten kod działa doskonale.
val language = „francuski” language = „niemiecki” // Błąd
Nie można ponownie przypisać zmiennej językowej do German
w powyższym przykładzie, ponieważ zmienna jest zadeklarowana przy użyciu val
.
Teraz wiesz, czym są zmienne Kotlin, czas nauczyć się różnych wartości, które może przyjmować zmienna Kotlin.
Podstawowe typy Kotlin
Kotlin jest językiem typowanym statycznie, takim jak Java. Oznacza to, że typ zmiennej jest znany w czasie kompilacji. Na przykład,
język val: Int val marks = 12.3
Tutaj kompilator wie, że język jest typu Int
, a znaczniki są typu Double
przed kompilacją.
Typy wbudowane w Kotlinie można podzielić na:
- Liczby
- Postacie
- Booleans
- Tablice
Typ numeru
Liczby w Kotlin są podobne do Java. Istnieje 6 wbudowanych typów reprezentujących liczby.
- Bajt
- Krótki
- Int
- Długo
- Pływak
- Podwójnie
1. Bajt
- Typ
Byte
danych może mieć wartości od -128 do 127 (8-bitowa liczba całkowita uzupełniająca do dwóch ze znakiem). - Jest używany zamiast
Int
lub innych typów danych całkowitych, aby oszczędzać pamięć, jeśli jest pewne, że wartość zmiennej będzie mieścić się w przedziale (-128, 127) - Przykład:
fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )
Po uruchomieniu programu wynik będzie następujący:
112
2. Krótkie
- Typ
Short
danych może mieć wartości od -32768 do 32767 (16-bitowa liczba całkowita uzupełniająca do dwóch ze znakiem). - Jest używany zamiast innych typów danych całkowitoliczbowych do oszczędzania pamięci, jeśli jest pewne, że wartość zmiennej będzie mieścić się w przedziale (-32768, 32767).
- Przykład:
fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )
Po uruchomieniu programu wynik będzie następujący:
-11245
3. Int
- Typ
Int
danych może mieć wartości od do (32-bitowa liczba całkowita uzupełniająca do dwóch ze znakiem).-231
231-1
- Przykład:
fun main(args : Array) ( val score: Int = 100000 println("$score") )
Po uruchomieniu programu wynik będzie następujący:
100000
Jeśli przypiszesz do zmiennej liczbę całkowitą z przedziału od do bez jawnego określenia jej typu, zmienna będzie typu. Na przykład,-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
Tablica to kontener zawierający dane (wartości) jednego typu. Na przykład możesz utworzyć tablicę, która może zawierać 100 wartości Int
typu.
W Kotlinie tablice są reprezentowane przez Array
klasę. Klasa ma get
i set
funkcje, size
właściwość i kilka innych przydatnych funkcji składowych.
Aby dowiedzieć się więcej o tablicach, odwiedź: Kotlin Arrays
Struny Kotlin
W Kotlinie ciągi są reprezentowane przez String
klasę. Literały łańcuchowe, takie jak „to jest ciąg znaków”, są zaimplementowane jako instancja tej klasy.
Aby dowiedzieć się więcej o strunach, odwiedź: Kotlin Strings
Zalecane lektury
- Konwersja typów w Kotlinie
- Sprytne rzuty w Kotlinie
- Kotlin dopuszcza wartości null