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