Neste tutorial, você aprenderá sobre variáveis, como criá-las e tipos de dados básicos que o Kotlin oferece suporte para a criação de variáveis.
Como você sabe, uma variável é um local na memória (área de armazenamento) para armazenar dados.
Para indicar a área de armazenamento, cada variável deve receber um nome único (identificador). Saiba mais sobre como nomear uma variável em Kotlin?
Como declarar uma variável em Kotlin?
Para declarar uma variável em Kotlin, var
ou a val
palavra-chave é usada. Aqui está um exemplo:
var language = "francês" val score = 95
A diferença no uso de var e val é discutida posteriormente neste artigo. Por enquanto, vamos nos concentrar na declaração de variável.
Aqui, a linguagem é uma variável do tipo String
e score
é uma variável do tipo Int
. Você não precisa especificar o tipo de variáveis; Kotlin implicitamente faz isso por você. O compilador sabe disso pela expressão do inicializador ("francês" é um String
e 95 é um valor inteiro no programa acima). Isso é chamado de inferência de tipo em programação.
No entanto, você pode especificar explicitamente o tipo se quiser:
var language: String = "Francês" pontuação val: Int = 95
Inicializamos a variável durante a declaração nos exemplos acima. No entanto, não é necessário. Você pode declarar a variável e especificar seu tipo em uma instrução e inicializar a variável em outra instrução posteriormente no programa.
var language: String // declaração da variável do tipo String… language = "French" // inicialização da variável val score: Int // declaração da variável do tipo Int… score = 95 // inicialização da variável
Aqui estão alguns exemplos que resultam em erro.
var language // Erro de idioma = "Francês"
Aqui, o tipo de variável de idioma não é especificado explicitamente, nem a variável é inicializada durante a declaração.
var language: String language = 14 // Erro
Aqui, estamos tentando atribuir 14 (valor inteiro) a uma variável de tipo diferente ( String
).
Diferença entre var e val
- val (referência imutável) - A variável declarada usando a
val
palavra-chave não pode ser alterada depois que o valor é atribuído. É semelhante à variável final em Java. - var (referência mutável) - A variável declarada usando a
var
palavra-chave pode ser alterada posteriormente no programa. Corresponde à variável Java regular.
Aqui estão alguns exemplos:
var language = "francês" idioma = "alemão"
Aqui, a language
variável é reatribuída ao alemão. Visto que a variável é declarada usando var
, este código funciona perfeitamente.
val language = "French" language = "German" // Erro
Você não pode reatribuir a variável de idioma a German
no exemplo acima porque a variável é declarada usando val
.
Agora que você sabe o que são variáveis Kotlin, é hora de aprender os diferentes valores que uma variável Kotlin pode assumir.
Tipos básicos de Kotlin
Kotlin é uma linguagem de tipagem estática como Java. Ou seja, o tipo de uma variável é conhecido durante o tempo de compilação. Por exemplo,
linguagem val: Int val marcas = 12,3
Aqui, o compilador sabe que a linguagem é do tipo Int
e as marcas são do tipo Double
antes do tempo de compilação.
Os tipos integrados no Kotlin podem ser categorizados como:
- Números
- Personagens
- Booleanos
- Arrays
Tipo de número
Os números em Kotlin são semelhantes a Java. Existem 6 tipos integrados que representam números.
- Byte
- Curto
- Int
- Longo
- Flutuador
- em dobro
1. Byte
- O
Byte
tipo de dados pode ter valores de -128 a 127 (número inteiro de complemento de dois com sinal de 8 bits). - É usado em vez de
Int
ou outros tipos de dados inteiros para economizar memória se for certo que o valor de uma variável estará entre (-128, 127) - Exemplo:
fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )
Quando você executa o programa, a saída será:
112
2. Curto
- O
Short
tipo de dados pode ter valores de -32768 a 32767 (inteiro complementar de dois com sinal de 16 bits). - É usado no lugar de outros tipos de dados inteiros para economizar memória se for certo que o valor da variável estará dentro de (-32768, 32767).
- Exemplo:
fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )
Quando você executa o programa, a saída será:
-11245
3. Int
- O
Int
tipo de dados pode ter valores de a (inteiro complementar de dois com sinal de 32 bits).-231
231-1
- Exemplo:
fun main(args : Array) ( val score: Int = 100000 println("$score") )
Quando você executa o programa, a saída será:
100000
Se você atribuir um inteiro entre a a uma variável sem especificar explicitamente seu tipo, a variável será do tipo. Por exemplo,-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
Uma matriz é um contêiner que contém dados (valores) de um único tipo. Por exemplo, você pode criar uma matriz que pode conter 100 valores de Int
tipo.
No Kotlin, os arrays são representados pela Array
classe. A classe tem get
e set
funções, size
propriedade e algumas outras funções-membro úteis.
Para saber mais detalhes sobre arrays, visite: Kotlin Arrays
Kotlin Strings
No Kotlin, as strings são representadas pela String
classe. Os literais de string como "esta é uma string" são implementados como uma instância dessa classe.
Para saber mais detalhes sobre strings, vist: Strings Kotlin
Leituras Recomendadas
- Conversão de tipo em Kotlin
- Smart casts em Kotlin
- Tipos anuláveis de Kotlin