A propósito, eu estava conversando com o Tim Perrett a respeito dessa
sua questão, e ele acha que o exemplo pode ser simplificado.
2011/6/22 Picanha <giulia...@gmail.com>:
--
Daniel C. Sobral
I travel to the future all the time.
Isso é explicado em detalhe na seção 6.1.2. Se você olhar o objeto
SHtml no Scaladoc do Lift
(http://scala-tools.org/mvnsites/liftweb-2.3/ para versão 2.3), o
método text tem a seguinte assinatura:
def text (value: String, func: (String) => Any, attrs: ElemAttr*) : Elem
Ou seja, o primeiro parâmetro deve ser uma String, e o segundo uma
função que recebe String e faz alguma coisa com ela. No Lift in
Action, ele descreve o primeiro parâmetro como "Getter" e o segundo
como "Setter", e é exatamente isso que acontece. Esse campo texto vai
ser preenchido com o conteúdo de b.title (getter), e quando o usuário
digitar alguma coisa, b.title vai ser setado para este valor (setter).
Em detalhes, "_" tem muitos significados em Scala. Neste caso em
particular, ele é um _parâmetro anônimo_, fazendo da expressão
"b.title = _" uma função. Em particular, se eu tenho a expressão "_ +
_ + _", isso é equivalente a escrever "(x, y, z) => x + y + z". No
exemplo original, portanto, teria sido equivalente escrever o
seguinte:
SHtml.text(b.title, (value) => b.title = value)
-----------------------
Saulo B. M. Venâncio
Control and Automation Eng. Student
Associate in Business Management
T
+55 48 84121486
E
saulo.v...@gmail.com
-----------------------
Saulo B. M. Venâncio
Control and Automation Eng. Student
Associate in Business Management
T
+55 48 84121486
E
saulo.v...@gmail.com
Então o ideal, pelo que entendi, pra conhecer melhor a linguagem, em projetos pequenos trabalhar as duas ling juntas. E especialmente trabalhar os controllers no scala, e devagar ir migrando. certo?
E thomas, sobre as APIs que vc falou, vc usa elas no scala? as invocacoes sao igual, instanciametno de obj, o obj criado por ling java dentro do scala pode usar recursos só do escala (ex. instancio Pessoa de forma java, depois coloco no setter de qq coisa um integer do scala)????
Abaixo:Então o ideal, pelo que entendi, pra conhecer melhor a linguagem, em projetos pequenos trabalhar as duas ling juntas. E especialmente trabalhar os controllers no scala, e devagar ir migrando. certo?
Se você já sabe bem como fazer a persistência em Java, pode ser uma boa. É claro que, se for um projeto começando do zero, e ele for MUITO simples, talvez fazer tudo em scala não seja tão ruim.
Se você está começando agora, uma coisa que pode pegar um pouco, se tentar usar JPA ou algum framework de injeção de dependências, é o uso de anotações. Mas depois que acostuma, fica fácil.
E thomas, sobre as APIs que vc falou, vc usa elas no scala? as invocacoes sao igual, instanciametno de obj, o obj criado por ling java dentro do scala pode usar recursos só do escala (ex. instancio Pessoa de forma java, depois coloco no setter de qq coisa um integer do scala)????
Não sou o Thomas mas já que "estou aqui"... hehehe
Basicamente, cada caso é um caso. Acho que fica mais fácil você abrir emails novos para cada dúvida, mas um exemplo:
Digamos que você tem uma classe Java que expõe uma coleção (também java). Se você quiser usar as facilidades das coleções Scala, vai precisar de um pequeno "cheat code": import scala.collection.JavaConversions._ - com isso, suas coleções java vão ser transformadas em coleções Scala "por baixo dos panos", e você vai poder usar foreach, map, filter etc.
Agora, não entendi o que você quis dizer com o exemplo de Pessoa aí em cima...
-----------------------
Saulo B. M. Venâncio
Control and Automation Eng. Student
Associate in Business Management
T
+55 48 84121486
E
saulo.v...@gmail.com