“May the Scala be with you” :lol:
hehe, vendo alguns “pedidos” desta ultima pagina, todos me remeteram a coisas que vi em scala, ou em frameworks scala, como lift, vejam algumas facilidades do Lift:
Lift Utilities:
10 seconds 1
1 hour 2
1. Results in net.liftweb.util.Helpers.TimeSpan = 10 seconds
2. Results in net.liftweb.util.Helpers.TimeSpan = 1 hour
Sim, no teu código voce escrevera exatamente assim: “10 seconds” sem ponto mesmo, ja q em certos casos o “.” nao é obrigatorio em scala.
outras facilidades
[code]
md5(“hello world”) 1
- Results in a java.lang.String with the value XrY7u+Ae7tCTyyK7j1rNww== [/code]
Persistencia basica do Lift, Mapper, basica por que tem outras opcoes:
[code]
User.find(By(User.email, "foo@bar.com")) 1
User.find(By(User.birthday, new Date(“Jan 4, 1975”))) 2 [/code]
Sobrecarga de operadores, ta, isto nao é sobrecarda ja q nao tem operadores em scala, tudo é objeto, mas ficaria assim:
case class IntPoint(x: Int, y: Int) {
def +(a: IntPoint) = IntPoint(a.x + x, a.y + y)
}
val a = IntPoint(1, 2)
val b = IntPoint(2, 3)
val c = a+b
//resultado:
c: IntPoint = IntPoint(3,5)
Porque isto é possivel? Porque tudo é objeto, logo “+” é apenas um metodo da classe IntPoint. Pra quem não sabe, em Scala, são raríssimas as excessões quanto ao uso de caracteres para nomes de metodos e classes, ou seja /, , | *, +, $, %, &, @, :, ::, :::, !, ~, etc, são todos nomes validos para metodos e classes!
Estes são alguns exemplo que me lembrei que ja vi em meus estudos, isso pq ainda me considero bem leigo em Scala.
Realmente quando a linguagem facilita, as possibilidades são muitas!