Pular para o conteúdo principal

Postagens

Mostrando postagens de 2021

Recursos da Linguagem Kotlin - Null Safety

Olá pessoal continuando o tema Kotlin, hoje iremos ver como funciona o sistema de Null Safety do Kotlin, e entender como funciona este poderoso recurso. Trabalhando com Instâncias Antes de nos aprofundarmos no  null safety,  precisamos entender o porque as principais linguagens de programação sofrem com o famoso null . Quando instanciamos uma classe e criamos um novo objeto na memória, temos acesso a este objeto a partir de uma referência, ou seja, esta referência aponta para um endereço da memória onde se encontra o objeto. Então basicamente, concluímos que o acesso a um objeto é feito a partir de uma referência, e caso esta esteja nula, o famoso NullPointerException acontece. Agora que já temos uma base do problema, vamos entender como o Kotlin trouxe uma forma segura de lidar com isto. Hieraquia de Tipos em Kotlin Para entendermos como o Kotlin lida com NullSafety, antes vamos precisamos entender sobre declaração de variáveis, e sobre a classe Any , que é a super class de todos os

Recursos da Linguagem Kotlin - Infix

 Olá pessoal, hoje continuando falando sobre os recursos da linguagem Kotlin, vamos falar sobre o uso de funções  infix . O que é o Infix Ao utilizar algumas bibliotecas famosas do mundo Kotlin nos deparamos com códigos sendo utilizados da seguinte forma: Uso do Assertion da biblioteca Kotest. No exemplo acima, temos uma expressão diferente, que é a expect shouldBe "Kotlin" , aqui temos o uso de uma função infix,  que basicamente irá testar se a variável expect possui o valor "Kotlin",  Ao olhar para esta expressão sem conhecer o infix , não percebemos que na verdade o shouldBe é uma função da variável expect, e recebe como argumento a String Kotlin, abaixo temos o mesmo efeito do código mostrado anteriormente: Uso do Assertion da biblioteca Kotest sem o uso de Infix. Como já podemos notar, o uso do  infix é uma forma de deixar a chamada de uma função mais expressiva, ou seja, a chamada da função é fluente sem um contrato explicito de código funcional. Esta abord