Jason. Cała informatyka w jednym miejscu!

Interesują Was podstawowe typy danych w języku Kotlin? To dobrze trafiliście! Przedstawię Wam je wszystkie i krótko omówię czym się różnią między sobą. Przedstawiciele języka Java będą się czuć jak u siebie w domu, jednakże istnieją drobne różnice, które trzeba mieć na względzie. Serdecznie zapraszam do środka!

PODSTAWOWE TYPY DANYCH W JĘZYKU KOTLIN

Kotlin posiada wszystkie typy proste, co język Java, zatem nie bójcie się że coś zostało wycięte. Muszę jednak zwrócić uwagę na parę wyjątków jakie przedstawię podczas prezentowania poszczególnych rodzajów. Podzielimy to sobie na kategorie:

CAŁKOWITOLICZBOWE

Typy całkowitoliczbowe to typy będące w stanie przechowywać dane w postaci liczb całkowitych. Oto cztery podstawowe typy:

NAZWA MINIMALNY ZAKRES MAKSYMALNY ZAKRES PRZYKŁAD
Byte -27 27 - 1 -66
Short -215 215 - 1 25000
Int -231 231 - 1 3000000
Long -263 263 - 1 320000000L

Kotlin posiada w swoim arsenale cztery typy proste przeznaczone do przechowywania liczb całkowitych. Możemy wpływać na to, jaki konkretnie typ całkowitoliczbowy chcemy uzyskać dopisując go ręcznie po znaku dwukropka:

val x: Byte = 80

Przy czym, ostrzegam! Gdy podana wartość będzie poza dopuszczalnym zakresem pożądanego typu, zostanie wyświetlony błąd kompilacji. To jest jeden z kolejnych dowodów jak bardzo Kotlin zwraca uwagę na bezpieczeństwo kodu. Możemy mimo wszystko "postawić na swoim" stosując konwersję typu na inny.

Całkowitoliczbowe typy danych w języku Kotlin działają następująco. Jeżeli nie podamy jawnie jednego z wyżej wymienionych typów, to domyślnie zostanie on potraktowany jako "Int", chyba że podana przez nas liczba okaże się zbyt duża dla "Int". Wtedy kompilator "sięgnie" po "Long". W sytuacji, gdy chcemy utworzyć zmienną typu "Long" a liczba nie jest na tyle duża żeby przekroczyć zakres "Int", jesteśmy w stanie wymusić ten typ w jeszcze prostszy sposób: wystarczy na samym końcu wartości dodać literkę ‘L’ (duże L):

val longValue = 15000L

ZMIENNOPRZECINKOWE

Typy zmiennoprzecinkowe nadają się do przechowywania liczb zmiennoprzecinkowych (z ułamkiem). Kotlin posiada dwa takie typy:

NAZWA MINIMALNY ZAKRES MAKSYMALNY ZAKRES PRZYKŁAD
Float -231 231 - 1 -16.67f
Double -263 263 - 1 329.05

Zmiennoprzecinkowe typy danych w języku Kotlin posiadają pewne "kruczki" których trzeba być świadom. Zarówno "Float", jak i "Double" kierują się standardem IEEE 754. W związku z tym, różnią się nie tylko zakresem przechowywanych liczb, ale także liczbą tzw. "cyfr znaczących" czyli ile cyfr może występować po przecinku. Więcej różnic pomiędzy jednym a drugim, możecie znaleźć na tej stronie.

Notabene, że chcąc utworzyć zmienną typu "Float", musicie dodać "ogonek" w postaci dużej lub małej litery ‘F’. W przeciwnym razie, każda liczba zmiennoprzecinkowa zostanie domyślnie przypisana do typu "Double".

ZNAKOWE

Oto dwa "znakowe" typy danych nadające się do przechowywania znaków:

NAZWA PRZYKŁAD
Char 'r'
String "Kotlin"

Znakowe typy danych w języku Kotlin przechowują znaki w rozumieniu kodów ASCII. "Char" przeznaczony jest dla pojedynczych znaków, które to umieszczamy w apostrofach. "String" z kolei umożliwia składowanie łańcuchów znaków inaczej także nazywanych "literałami znakowymi", które otoczone są cudzysłowami.

Drodzy "fachowcy od Javy". Mam dla Was komunikat odnośnie typu "Char". Jak dobrze wiecie, "char" w Javie jest w stanie również przechowywać małe liczby w takim samym zakresie, co "Byte" przedstawiony u góry.

char c = 56;

W Kotlinie to będzie niedopuszczalne! Nie mieszajcie jednego z drugim. To kolejny krok języka stawiający na bezpieczeństwo. Małe liczby do "Byte", znaki do "Char" (chyba, że zastosujemy konwersję jawną), OK?

LOGICZNE

Z logicznych typów danych, Kotlin posiada jedynie "Boolean". To jest możliwość składowania jedynie wartości "true" i "false", czyli prawdy i fałszu. Nic w tej kwestii się nie zmienia patrząc na poprzednika.

val b = false

NIESTANDARDOWE

Ostatnie słowo o niestandardowych typach danych.

WŁASNA KLASA

Przy pomocy słowa "class", możemy zawsze utworzyć własną klasę dla przyszłych obiektów, aby ona stanowiła nowy typ danych.

NOTHING

Typ danych "niczego"?! Aha, żadna ściema! Nawet wartość "null" ma własny typ danych! Wymaga rozumienia używania typów akceptujących wartość pustą!

SPOSÓB NA "LEGALNE" PRZENOSZENIE TYPÓW

Co prawda, Kotlin nie zezwoli nam na "mieszanie" typów danych, jak to ma miejsce w Javie:

char c = 56;

Jednak jest jeden sposób, aby typy danych w języku Kotlin mogły być przenoszone między sobą. Konwersja! Albo przez funkcję, albo przez daną składową. Akurat dla przypadku typu "Char", obiekt tego typu posiada właściwość "code", zatem poniższy kod napisany w Javie:

char c = '5';

System.out.println((int)c);

przeszedłby w Kotlinie w takiej postaci:

val c = '5'

println(c.code)

Można jeszcze użyć metody "toInt", natomiast w przypadku znaku wystąpi ostrzeżenie o zdeprecjonowaniu (funkcjonalność, która "wyszła z użycia" i zawiera w sobie lepszy odpowiednik) więc najlepiej skorzystać z "code". Każda metoda konwertująca zaczyna się od przedrostka "to". Oto spis wszystkich metod przeznaczonych do konwersji:

  • toByte
  • toShort
  • toInt
  • toLong
  • toFloat
  • toDouble
  • toChar
  • toString
  • toBoolean
Proste typy danych w języku Kotlin

Wśród podstawowych typów danych wyróżnia się dziewięć takich w Kotlinie: "Byte", "Short", "Int", "Long", "Float", "Double", "Char", "String", "Boolean".


Oto koniec tego skromnego wpisu. Przejrzeliście sobie przed sekundą podstawowe typy danych w języku Kotlin, a także jak możemy w sposób niebudzący zastrzeżeń przenosić się z jednego typu do drugiego.

PODOBNE ARTYKUŁY