Entendendo o Implicit

Ao nos depararmos com implicit a primeira vez, pode ser algo um pouco confuso. Vou tentar explicar e exemplificar o uso de implicits.

Quando queremos definir uma variável ou método como privado/protegido, basta somente adicionarmos private/protected na frente, certo? Isso informa ao compilador que teremos aquelas variáveis e métodos privados ou protegidos. Trabalhamos com implicit da mesma forma, sendo que o seu funcionamento é completamente diferente. Iremos ver 3 maneiras de utilizar o implicit, mas em todos os casos com o mesmo objetivo, tornar algo implícito!

Antes de entrarmos a fundo no assunto, precisamos entender como funciona o implicit.

O implicit de maneira geral funciona da mesma forma. Quando definimos algo como implícito, o compilador registra tudo que é implícito em uma lista de “coisas implícitas”. A partir daí, quando invocamos um método qualquer, por exemplo, o compilador sempre irá verificar em sua lista os objetos implícitos, caso algum atenda a sua condição implícita ele irá invocar o que foi definido como implícito.

Confuso? A baixo iremos ver na prática como o implicit funciona:

Classes implícitas

O primeiro tipo de implicit que iremos aprender é o implicit de classe. Com ele conseguimos de maneira fácil adicionar ou modificar o comportamento de uma classe, seja em seus atributos ou métodos.
Continuar lendo

Trabalhando com String no Scala

Neste post iremos aprender a trabalhar um pouco com String no Scala.

Declaração

Já vimos nos posts anteriores como declaramos uma variável do tipo String. Podemos fazer de duas formas basicamente:

1) Especificando o Tipo

val name: String = "Diego"

2) Omitindo o tipo, deixando que o Scala determine automaticamente o tipo.

val name = "Diego"

Funções úteis

Capturando um caracter dentro de uma String

Para capturar um caracter, basta informar o indice que o caracter está posicionado. Podemos fazer isso de 3 formas:

val name = "Diego"
println(name(0))
println(name(1))
println(name(2))

Continuar lendo

Declarando variáveis no Scala

Vamos colocar a mão na massa agora! Como primeiro assunto, iremos aprender como funciona a declaração de variáveis no Scala. Entre no console do Scala e vamos estudar!

Declaração

[escopo] [tipo da acesso] [nome da variável]: [tipo da variável] = [Valor padrão]

Exemplo:

private val name: String = "Diego"

Essa é a forma completa de declaração, porém não precisamos declarar sempre a forma completa, podemos omitir alguns parâmetros. Mas antes disso iremos entender cada parte da declaração completa.

1) Escopo

Escopo de acesso da sua variável, podendo ser:

a) public

Será uma variável pública, ou seja, será acessível dentro de sua própria classe, instancias dessa classe e subclasses. Esse é o escopo default na declaração de variável no Scala, então podemos omiti-lo.
Continuar lendo

Primeiros passos no Scala

Console

Para entrarmos no console, basta digitarmos scala no terminal. Para quem vem do Ruby, o console do Scala funciona similar ao IRB.

O Console é o melhor lugar para darmos o primeiro passo no aprendizado da linguagem do Scala e até mesmo futuramente, caso precisemos testar algum trecho de código.

Agora que você entrou no console do Scala, digite:

println("Hello World!!")

Note que podemos quebrar linha no console para executarmos blocos de código.

val lang = "Scala"

for(l <- lang) {
  println(l)
}

Para sair do console basta pressionar Ctrl + c ou digitar o comando exit.

Continuar lendo

Instalando o Scala

Instalação

A instalação do Scala é bastante simples, basta:

1) Baixar os binários do Scala no site http://www.scala-lang.org/download/ e extrair os arquivos em alguma pasta em seu computador.

2) Adicionar em seu PATH, o local onde o Scala se encontra. Para isso adicione no ~/.bashrc (Linux) ou ~/.bash_profile (Mac) a seguinte linha:

OBS: Lembre-se de alterar o caminho do PATH para a pasta bin de onde você extraiu os arquivos da instalação do Scala. Após adicionar o PATH reinicie seu terminal ou recarregue o arquivo bash com o comando: source ~/.bashrc (Linux) ou ~/.bash_profile (Mac).

export PATH=$PATH:/Users/diego/Documents/scala/scala-2.10.4/bin

Pronto! Instalação realizada com sucesso!

No próximo post iremos brincar um pouco com o console!

Até lá!

Introdução à Scala

A linguagem Scala

Criada por Martin Odersky, a linguagem Scala foi influenciada por outras linguagens com o objetivo de unir o melhor de cada linguagem, como a legibilidade e facilidade de escrita do Ruby, conceitos de programação funcional como na Haskell, a robustez e maturação da linguagem java, entre outros fatores, além do fato de rodar sobre a JVM (Java Virtual Machine).

Orientação a objetos

A Scala é uma linguagem orientada a objetos, onde, todo valor é um objeto e as classes são quem definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos.

Programação Funcional

Assim como na linguagem Haskell e Erlang, a Scala também se beneficia da programação funcional, evitando estados ou dados mutáveis, ao contrário da programação imperativa, que enfatiza mudanças no estado do programa. Funções são tratadas como valores, você pode passar uma função para uma variável, como parâmetro para outra função ou até mesmo como retorno de uma função.

Continuar lendo

Primeira temporada de Scala

De tempos em tempos, gosto de dar uma reciclada em meus conhecimentos. Aprender uma nova linguagem, um banco de dados novo ou um novo framework.

Tecnologia é igual ao tempo, não para! Temos que estar por dentro de tudo a todo momento. Não buscando ser um especialista, mas sim ter um pouco do conhecimento, entender do assunto, acompanhar a linha de raciocínio atual, ter uma carta na manga.

Decidi iniciar um estudo esse ano na linguagem Scala. Vou tentar postar em doses omeopáticas um pouco do que for aprendendo.

Escolhi a linguagem Scala para estudo pelo fato de algumas grandes empresas apostarem e conseguirem ter melhoras significativas no que diz respeito a performance, scalabilidade, produtividade, segurança e etc. Twitter, Foursqure, Thumbr e Linkedin, são um bom exemplo de empresas que utilizam Scala.

Infelizmente ainda não temos um vasto material no Brasil sobre Scala. Espero contribuir um pouco com quem procura dar os primeiros passos na linguagem, assim como eu.

É isso ai, nos vemos nos próximos posts!