Kotlin - Tipos Básicos

Neste capítulo, aprenderemos sobre os tipos de dados básicos disponíveis na linguagem de programação Kotlin.

Números

A representação de números em Kotlin é muito semelhante a Java, no entanto, Kotlin não permite a conversão interna de diferentes tipos de dados. A tabela a seguir lista diferentes comprimentos de variáveis ​​para diferentes números.

Tipo Tamanho
em dobro 64
Flutuador 32
Grandes 64
Int 32
Baixo 16
Byte 8

No exemplo a seguir, veremos como Kotlin funciona com diferentes tipos de dados. Insira o seguinte conjunto de códigos em nosso campo de codificação.

fun main(args: Array<String>) {
   val a: Int = 10000
   val d: Double = 100.00
   val f: Float = 100.00f
   val l: Long = 1000000004
   val s: Short = 10
   val b: Byte = 1
   
   println("Your Int Value is "+a);
   println("Your Double  Value is "+d);
   println("Your Float Value is "+f);
   println("Your Long Value is "+l);
   println("Your Short Value is "+s);
   println("Your Byte Value is "+b);
}

Quando você executa o trecho de código acima no campo de codificação, ele irá gerar a seguinte saída no console da web.

Your Int Value is 10000
Your Double  Value is 100.0
Your Float Value is 100.0
Your Long Value is 1000000004
Your Short Value is 10
Your Byte Value is 1

Personagens

Kotlin representa o personagem usando char. O caractere deve ser declarado em aspas simples, como‘c’. Por favor, insira o código a seguir em nosso campo de codificação e veja como Kotlin interpreta a variável de caractere. Variáveis ​​de caracteres não podem ser declaradas como variáveis ​​numéricas. A variável Kotlin pode ser declarada de duas maneiras - uma usando“var” e outro usando “val”.

fun main(args: Array<String>) {
   val letter: Char    // defining a variable 
   letter = 'A'        // Assigning a value to it 
   println("$letter")
}

O trecho de código acima produzirá a seguinte saída na janela de saída do navegador.

A

boleano

Boolean é muito simples como outras linguagens de programação. Temos apenas dois valores para Boolean - verdadeiro ou falso. No exemplo a seguir, veremos como Kotlin interpreta o booleano.

fun main(args: Array<String>) {
   val letter: Boolean   // defining a variable 
   letter = true         // Assinging a value to it 
   println("Your character value is "+"$letter")
}

O trecho de código acima produzirá a seguinte saída no navegador.

Your character value is true

Cordas

Strings são matrizes de caracteres. Como Java, eles são imutáveis ​​por natureza. Temos dois tipos de string disponíveis em Kotlin - um é chamadoraw String e outro é chamado escaped String. No exemplo a seguir, faremos uso dessas strings.

fun main(args: Array<String>) {
   var rawString :String  = "I am Raw String!"
   val escapedString : String  = "I am escaped String!\n"
   
   println("Hello!"+escapedString)
   println("Hey!!"+rawString)   
}

O exemplo acima de String com escape permite fornecer espaço de linha extra após a primeira instrução de impressão. A seguir será a saída no navegador.

Hello!I am escaped String!

Hey!!I am Raw String!

Arrays

Arrays são uma coleção de dados homogêneos. Como o Java, o Kotlin oferece suporte a matrizes de diferentes tipos de dados. No exemplo a seguir, faremos uso de diferentes arrays.

fun main(args: Array<String>) {
   val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5)
   println("Hey!! I am array Example"+numbers[2])
}

O trecho de código acima produz a seguinte saída. A indexação da matriz é semelhante a outras linguagens de programação. Procuramos aqui um segundo índice, cujo valor é “3”.

Hey!! I am array Example3

Coleções

A coleta é uma parte muito importante da estrutura de dados, o que torna o desenvolvimento de software fácil para os engenheiros. Kotlin tem dois tipos de coleção - um éimmutable collection (o que significa listas, mapas e conjuntos que não podem ser editáveis) e outro é mutable collection(este tipo de coleção é editável). É muito importante ter em mente o tipo de coleção usada em sua aplicação, pois o sistema Kotlin não representa nenhuma diferença específica entre elas.

fun main(args: Array<String>) { 
   val numbers: MutableList<Int> = mutableListOf(1, 2, 3) //mutable List 
   val readOnlyView: List<Int> = numbers                  // immutable list 
   println("my mutable list--"+numbers)        // prints "[1, 2, 3]" 
   numbers.add(4) 
   println("my mutable list after addition --"+numbers)        // prints "[1, 2, 3, 4]" 
   println(readOnlyView)     
   readOnlyView.clear()    // ⇒ does not compile  
// gives error  
}

O trecho de código acima produzirá a seguinte saída no navegador. Ele dá um erro quando tentamos limpar a lista mutável da coleção.

main.kt:9:18: error: unresolved reference: clear
   readOnlyView.clear()    // -> does not compile  
                 ^

Na coleção, Kotlin fornece alguns métodos úteis, como first(), last(), filter(), etc. Todos esses métodos são autodescritivos e fáceis de implementar. Além disso, o Kotlin segue a mesma estrutura do Java ao implementar a coleção. Você é livre para implementar qualquer coleção de sua escolha, como Mapear e Definir.

No exemplo a seguir, implementamos Map e Set usando diferentes métodos integrados.

fun main(args: Array<String>) {
   val items = listOf(1, 2, 3, 4)
   println("First Element of our list----"+items.first())
   println("Last Element of our list----"+items.last())
   println("Even Numbers of our List----"+items.
      filter { it % 2 = = 0 })   // returns [2, 4]
   
   val readWriteMap = hashMapOf("foo" to 1, "bar" to 2)
   println(readWriteMap["foo"])  // prints "1"
   
   val strings = hashSetOf("a", "b", "c", "c")
   println("My Set Values are"+strings)
}

O trecho de código acima produz a seguinte saída no navegador.

First Element of our list----1
Last Element of our list----4
Even Numbers of our List----[2, 4]
1
My Set Values are[a, b, c]

Gamas

Ranges é outra característica única de Kotlin. Como Haskell, ele fornece um operador que o ajuda a iterar em um intervalo. Internamente, é implementado usandorangeTo() e sua forma de operador é (..).

No exemplo a seguir, veremos como Kotlin interpreta esse operador de intervalo.

fun main(args: Array<String>) {
   val i:Int  = 2
   for (j in 1..4) 
   print(j) // prints "1234"
   
   if (i in 1..10) { // equivalent of 1 < = i && i < = 10
      println("we found your number --"+i)
   }
}

O trecho de código acima produz a seguinte saída no navegador.

1234we found your number --2