Kotlin const, var e val
1. Introdução
Neste tutorial, seremosoutlining the key differences between the const, var, and val keywords in the Kotlin language.
Para colocar essas palavras-chave em contexto, seremoscomparing them to their Java equivalents.
2. Entendendo a Digitação
Para entender essas palavras-chave, precisamos entender duas das principais categorias de sistemas de tipos que um idioma pode seguir - digitação manifesta e digitação inferida.
2.1. Digitação de Manifesto
Todos os idiomas oferecem uma variedade de tipos de dados primitivos para armazenar e manipular dados dentro de um programa. As linguagens de programação que seguem a disciplina de digitação de manifesto devem ter seus tipos de dados explicitamente definidos no programa.
Java, até a versão 10, segue rigorosamente essa disciplina. Por exemplo, se quisermos armazenar um número dentro de um programa, devemos definir um tipo de dados comoint:
int myVariable = 3;
2.2. Digitação inferida
Ao contrário do Java,Kotlin follows the inferred typing discipline. Linguagens que suportam inferência de tipoautomatically detect data types dentro do programa em tempo de compilação.
Essa detecção significa que nós, como desenvolvedores, não precisamos nos preocupar com os tipos de dados que estamos usando.
3. var
Em primeiro lugar, vamos começar comvar, Kotlin’s keyword representing mutable, non-final variables. Once initialized, we’re free to mutate the data held by the variable.
Vamos dar uma olhada em como isso funciona:
var myVariable = 1
Nos bastidores,myVariable e sincroniza com o tipoInt data.
Embora Kotlin use inferência de tipo, nósalso have the option to specify the data type when we initialize the variable:
var myVariable: Int = 1
Variáveis declaradas como um tipo de dados e depois inicializadas com um valor do tipo errado resultarão em um erro:
var myVariable: Int = b //ERROR!
4. val
A palavra-chaveval de Kotlin funciona muito nosame as the var keyword, but with one key difference – the variable is read-only.. O uso deval émuch like declaring a new variable in Java with the final keyword.
Por exemplo, em Kotlin, escreveríamos:
val name: String = "example"
Já em Java, escreveríamos:
final String name = "example";
Assim como as variáveisfinal em Java, as variáveisval devem ser atribuídas na declaração ou em um construtorClass:
class Address(val street: String) {
val name: String = "example"
}
5. const
Comoval, , as variáveis definidas com a palavra-chaveconst são imutáveis. A diferença aqui é que const is used for variables that are known at compile-time.
Declarar uma variávelconst é muito parecido com usar a palavra-chavestatic em Java.
Vamos ver como declarar uma variávelconst em Kotlin:
const val WEBSITE_NAME = "example"
E o código análogo escrito em Java seria:
final static String WEBSITE_NAME = "example";
6. Conclusão
Neste artigo, demos uma olhada rápida na diferença entre a digitação manifesto e inferida.
Em seguida, observamos a diferença entrevar,val econst enhas de Kotlin.