Scala tem um sistema de pacotes bastante flexível.
Eis algumas funcionalidades que você pode se deparar ao estudar uma API e que não existem no universo Java.
São elas:
#1 Além de declarar o pacote no começo do arquivo (como no java) posso usar a sintaxe de chaves de forma parecida com C#
Existe uma versão do scala para .net e a seguinte sintaxe é suportada pela linguagem.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.ricardomurad {
    class Foo {
        def bar = new subpack.Bar
    }
    package subpack {
        class Bar {
          def foo = new Foo
        }
    }
}

#2 – A declaração de import pode ser usada também para parâmetros, atributos, objetos e não precisa estar no começo do arquivo.
No exemplo abaixo importei todos os membros do argumento do método imprima então posso chamar diretamente toUpperCase em vez valor.toUpperCase

1
2
3
4
5
6
7
8
9
10
11
object Bla {
  def imprima(valor: String) = {
    import valor._
    println(toUpperCase)
  }
}

#3 – Posso importar seletivamente os membros de um determinado pacote ou objeto.

1
2
3
4
5
6
import com.earth.animals.{Horse}
//importei somente a classe Horse
import com.earth.animals.{ Human => _, _}
// Isso importa todos os itens do pacote com.earth.animals
// menos a classe Human

#4 – Posso renomear coisas no momento da importação

1
2
3
4
5
import java.sql.{Date => SQLDate}
//apelidei a classe java.sql.Date com SQLDate
val date = new SQLDate(2016, 2, 1)

#5 – Implicitamente estão sendo importados os seguintes pacotes:

1
2
3
4
5
import java.lang._
import Predef._
import scala._
// por isso vc pode user List em vez scala.List

Uma palavra final:
Scala é uma linguagem extremamente flexível. Como dia o Tio Ben com grandes poderes, vem grandes responsabilidades. Portanto use os recursos que a linguagem oferece com parcimônia.
Abcs
Este conteúdo foi publicado primeiro em: ricardomurad.com

Autor

Wilson Souza é Gerente de Marketing da Bluesoft. Formado e pós Graduado pela Instituição Mackenzie, possui também MBA pela FGV. Wilson tem mais de 10 anos de experiência na área de Relacionamento e Marketing, atuando em diversas áreas e segmentos do mercado.

Deixe aqui o seu comentário