Kotlin: Variáveis e Constantes
- #Kotlin
Uma variável é local para guardar um valor, que pode ser um texto, um número ou qualquer outra coisa. Toda variável precisa de um nome, ou identificador, para diferenciar uma das outras. Assim será possível acessar um valor através do nome da variável.
É importante entender o uso de variáveis, porque que é o elemento mais utilizado dentro de um programa.
Declare sua variável
Antes de usar uma variável, é preciso criá-la, ou melhor, declará-la. Para declarar uma variável, Kotlin fornece duas palavras chaves:
- val (para valor) declara uma variável imutável (é apenas uma valor nomeado ou uma constante), que não pode ser mudado após ser inicializado (isso não é absolutamente uma verdade, é possível alterar o conteúdo de uma val, mas não vem ao caso agora);
- var (para variável) declara uma variável mutável, a qual poderá ser alterada tantas vezes quanto forem necessárias.
Ao declarar uma variável, é necessário providenciar um nome para elas, que deve ser posicionado logo após as palavra chave val ou var.
Para atribuir um valor a sua variável é utilizado o operado =.
Vamos declarar uma variável com o nome linguagem e o valor Kotlin.
var linguagem = "Kotlin"
E é assim que se declara uma variável, mas vamos falar um pouco sobre o grande desafio de se criar uma variável, alguns dizem ser a parte mais difícil do ato de escrever um programa…
Como escolher o nome de uma variável?
Normalmente, deve-se iniciar o nome com uma letra. Escolha nomes que tenham significado para que seu código seja fácil de entender. Nome ruins tornam o código complicado de ler.
Então sempre dê nomes descritivos para todas as variáveis, para isso podemos seguir dois conjuntos de regras:
Regras da linguagem para nomes
Kotlin possui algumas regras:
- Nomes são case-sensitive (
number
não é o mesmo queNumber
, a mesma letras maiúscula e minúsculas são tratadas como letras diferentes); - Cada nome pode incluir apenas letras, dígitos, e underscores (carácter de sublinhado _);
- Um nome não pode começar com um dígito;
- Um nome não pode ser uma palavra chave (por exemplo,
val
,var
,fun
são ilegais).
Espaço em branco não são permitidos em nomes de variáveis. Mas é possível usar espaço caso se você usar backticks:
val `nome bom` = 5
val nome ruim = 2 // não funciona
Se você não respeitar estas regras seu programa nem irá funcionar.
Estes são alguns nomes válidos:
score, level, fruitType, i, j, abc, _cost, number1, `name with space`
E estes são alguns nome inválidos:
@pple, $dollar, 1number, !ab, val, var, _, name with space
Convenções para nomes
Kotlin também sugere seguir algumas convenções:
- Se o nome de uma variável é uma única palavra, use-a em letras minúscula (por exemplo: numero, valor);
- Se o nome é constituído de múltiplas palavras, use o padrão lowerCamelCase, onde todas as palavras são colocadas juntas, sem espaço entre elas, a primeira palavra é escrita totalmente em letras minúsculas, e todas as outras palavras seguintes começam com uma letra maiúscula, (por exemplo: quantidadeDeMoedas);
- Não inicie nomes com undercore
_
. Apesar de ser possível fazê-lo, não faça; - Escolha nomes significativos, que revelam o propósito da variável, por exemplo, contador faz mais sentido do que apenas c, mesmo que ambos sejam nomes válidos.
Alguma dicas do livro “Código Limpo”
Além das convenções acima, o livro Código Limpo de Robert C. Martin faz algumas boas sugestões:
- Evite passar a informação errada, nomes que podem ter significados ambíguos devem ser evitados, por exemplo uma variável de nome hp, poderia ser uma hipotenusa, uma homepage ou uma marca.
- Não use a palavra list para um grupo de coisas a menos que estas coisas estejam realmente armazenados em uma list, prefira nomes como grupoDeContas, accountGroups, ou simplesmente accounts.
- Evite nomes muito parecidos, nomes parecidos como XYZControllerForEfficientStorageOfStrings e XYZControllerForEfficientHandlingOfStrings pode ser difícil de identificar a diferença.
- Use nomes pronunciáveis, desenvolvimento é uma atividade social, não dá para discutir o código usando nomes impronunciáveis sem parecer um tolo, por exemplo, “Fulano, de onde vem o valor desse be ce erre três cê ene tê?”, ou ainda como se pronuncia o nome de uma variável chamada genymdhms?
Para mais detalhes, consulte o livro, existem bons exemplos nele.
Número Mágicos
Vamos falar de constantes e seu uso. As vezes é preciso usar um valor fixo no seu código. Por exemplo, você quer mostrar o número de dias da semana, o qual é sempre 7. Mas o código a seguir não é muito informativo para outras pessoas (na verdade nem pra você daqui a uma semana):
println(7)
O que é 7? Por que foi imprimido? Não faço ideia. Esses valores são chamados de números mágicos, números Mágicos não precisam ser exatamente números, não tem a ver com o valor, mas sim com a essência “Mágica” desse tipo de dado, ninguém sabe de ondem eles vem, o que fazem, ou o que significam. Então, evite-os.
O que podemos fazer?
Estes valores devem ser transformados em constantes, que são variáveis imutáveis. E com isso quero dizer constantes declaradas fora da função main (ou de qualquer função), usando as palavras chaves const val. Podemos dizer que essas são variáveis, ou melhor, constantes completamente imutáveis.
const val DIAS_DA_SEMANA = 7
fun main() {
// ...
println(DIAS_DA_SEMANA) // 7
// ...
}
O nome da constante deve ser significativo, e quando nomeamos constantes, usamos o estilo SCREAMING_SNAKE_CASE.
// Funciona corretamente, mas não é um bom nome de constante:
const val e = 4
// Esse é um bom exemplo:
const val ESTACOES = 4
Tipos
Você pode armazenar diferentes tipos de valores em variáveis, e geralmente você não precisa especificar o tipo de valor que você está atribuindo a uma variável, o compilador do Kotlin se baseará no valor atribuído à variável para definir o tipo, esse processo é conhecido como inferência de tipo.
val dez = 10
val saudacao = "Olá"
val primeiraLetra = 'A'
println(dez) // imprime 10
println(saudacao) // imprime Olá
println(primeiraLetra) // imprime A
Foram declarados valores do tipo Int, String e Character sem precisar dizer de que tipo são.
Mas cuidado, não é possível mudar o tipo de uma variável depois de declarado, por exemplo, se for atribuído um valor inteiro na declaração, não é permitido posteriormente atribuir um texto para esta variável .
var dez = 10
dez = 11 // tudo bem aqui
dez = "dez" // aqui vai dar erro
Atribuir um texto para uma variável do tipo inteiro vai gerar um erro
Se quiser, ou caso seja necessário por algum motivo, é possível definir o tipo da variável, é só adicionar : depois do nome da variável e o tipo desejado:
var dez : Int = 10
Para mais informações sobre variáveis e tipos consulte a documentação do kotlin:
https://kotlinlang.org/docs/basic-syntax.html#variables
https://kotlinlang.org/docs/basic-types.html
Referências:
https://hyperskill.org/learn/step/4389
https://hyperskill.org/learn/step/437 1
Este artigo foi escrito no medium também:
https://medium.com/@welblade/kotlin-vari%C3%A1veis-e-constantes-70296bcbbb5b