Kotlinské proměnné a základní typy

V tomto kurzu se dozvíte o proměnných, o tom, jak je vytvářet, a o základních datových typech, které Kotlin podporuje při vytváření proměnných.

Jak víte, proměnná je umístění v paměti (úložná oblast) pro uložení dat.

K označení oblasti úložiště by měla mít každá proměnná jedinečný název (identifikátor). Další informace o tom, jak pojmenovat proměnnou v Kotlinu?

Jak deklarovat proměnnou v Kotlin?

K deklaraci proměnné v Kotlin se používá buď klíčové slovo varnebo val. Zde je příklad:

 var language = "French" val skóre = 95

Rozdíl v použití var a val je popsán dále v článku. Prozatím se zaměřme na deklaraci proměnné.

Zde je jazyk proměnnou typu Stringa scoreje proměnnou typu Int. Nemusíte specifikovat typ proměnných; Kotlin to implicitně dělá za vás. Kompilátor to ví podle výrazu inicializátoru („francouzština“ je a Stringa 95 je celočíselná hodnota ve výše uvedeném programu). Tomu se v programování říká odvození typu.

Můžete však explicitně určit typ, pokud chcete:

 var language: String = "French" val score: Int = 95

Inicializovali jsme proměnnou během deklarace ve výše uvedených příkladech. Není to však nutné. Můžete deklarovat proměnnou a zadat její typ v jednom příkazu a inicializovat proměnnou v jiném příkazu později v programu.

 var language: String // deklarace proměnné typu String … language = "French" // proměnná inicializace val skóre: Int // deklarace proměnné typu Int … skóre = 95 // inicializace proměnné 

Zde je několik příkladů, které vedou k chybě.

 var language // Chyba jazyka = "francouzština"

Zde není typ proměnné jazyka výslovně specifikován, ani není proměnná inicializována během deklarace.

 var language: String language = 14 // Chyba

Zde se snažíme přiřadit 14 (celočíselná hodnota) proměnné jiného typu ( String).

Rozdíl mezi var a val

  • val (Immutable reference) - Proměnnou deklarovanou pomocí valklíčového slova nelze po přiřazení hodnoty změnit. Je to podobné jako finální proměnná v Javě.
  • var (Mutable reference) - Proměnnou deklarovanou pomocí varklíčového slova lze změnit později v programu. Odpovídá běžné proměnné Java.

Zde je několik příkladů:

 var language = "francouzština" language = "němčina" 

Zde je languageproměnná přeřazena do němčiny. Protože je proměnná deklarována pomocí var, tento kód funguje perfektně.

 val language = "French" language = "German" // Chyba

GermanVe výše uvedeném příkladu nemůžete znovu přiřadit jazykovou proměnnou, protože proměnná je deklarována pomocí val.

Nyní víte, co jsou proměnné Kotlin, je čas naučit se různým hodnotám, které proměnná Kotlin může nabývat.

Základní typy Kotlin

Kotlin je staticky psaný jazyk jako Java. To znamená, že typ proměnné je znám během doby kompilace. Například,

 jazyk val: Int val známky = 12.3

Zde kompilátor ví, že jazyk je typu Inta značky jsou typu Doublepřed časem kompilace.

Předdefinované typy v Kotlinu lze kategorizovat jako:

  • Čísla
  • Znaky
  • Booleovci
  • Pole

Typ čísla

Čísla v Kotlin jsou podobná Javě. Existuje 6 předdefinovaných typů představujících čísla.

  • Byte
  • Krátký
  • Int
  • Dlouho
  • Plovák
  • Dvojnásobek

1. Byte

  • ByteTyp dat může mít hodnoty od -128 do 127 (8-bitové dvojkového doplňku celé číslo).
  • Používá se místo Intnebo jiných celočíselných datových typů k ukládání paměti, pokud je jisté, že hodnota proměnné bude uvnitř (-128, 127)
  • Příklad:
     fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )

Když spustíte program, výstup bude:

 112

2. Krátké

  • ShortTyp dat může mít hodnoty od -32768 do 32767 (16-bitové celé číslo dvojkového doplňku).
  • Používá se místo jiných celočíselných datových typů k uložení paměti, pokud je jisté, že hodnota proměnné bude uvnitř (-32768, 32767).
  • Příklad:
 fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )

Když spustíte program, výstup bude:

 -11245

3. Int

  • IntTyp dat může mít hodnoty od do (32-bitové celé číslo dvojkového doplňku).-231231-1
  • Příklad:
 fun main(args : Array) ( val score: Int = 100000 println("$score") )

Když spustíte program, výstup bude:

 100 000

Pokud přiřadíte číslo mezi do proměnné bez explicitního určení jeho typ, bude proměnná být typu. Například,-231231-1Int

 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 to 263-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, either true or false.
  • 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

Pole je kontejner, který obsahuje data (hodnoty) jednoho jediného typu. Můžete například vytvořit pole, které pojme 100 hodnot Inttypu.

V Kotlinu jsou pole reprezentována Arraytřídou. Třída má geta setfunkce, sizevlastnost a několik dalších užitečných členských funkcí.

Chcete-li se dozvědět více podrobností o polích, navštivte: Kotlin Arrays

Kotlin struny

V Kotlin jsou řetězce reprezentovány Stringtřídou. Řetězcové literály, například „this is a string“, jsou implementovány jako instance této třídy.

Chcete-li se o řetězcích dozvědět podrobněji, navštivte: Kotlin Strings

Doporučené četby

  • Převod typu v Kotlin
  • Chytré obsazení v Kotlin
  • Typy s povolenou hodnotou Kotlin

Zajímavé články...