/* oficial samples http://groovy-lang.org/semantics.html#_multiple_assignment
*/
def (a,b) = [1L,2].split{it instanceof Long}
println a
println b
def (id, nome, idade, telefone, email) = "23141234#jonatas emidio de souza#20#32146547#[email protected]".split("#")
println id
println nome
println idade
println telefone
println email
def(x, y) = "xy"
println x
println y
println "***TESTE ALUNO***"
class Aluno{ String nome; Boolean aprovado; String toString() { "Nome:$nome - aprovado:${ aprovado ? 'SIM' : 'NÃO' }" } }
def(a1, a2, a3) = "abc".collect{ new Aluno(nome:it, aprovado:true) }
println a1.nome
println a2.nome
println a3.nome
def(aprovados, reprovados) = ([a1, a2, new Aluno(nome: "d", aprovado: false), a3]).split{ it.aprovado }
println aprovados
println reprovados
Análise do comentário para o Rodolfo:
OBS: Com relação ao
MissingPropertyException
, pelo fato de o groovy ser uma linguagem que gera bytecode java... algumas características foram herdadas, e uma delas é o fato de não podermos utilizar variáveis que ainda não foram explicitamente declaradas. Para ser sincero, não sei informar se hoje já existe algo para lidar com isso sem gerar Exception, mas o que normalmente acontece é a declaração desta variavel, para em seguida o seu uso - (Como no seu caso usando oprintln
)Então Rodolfo, espero ter respondido suas questões, caso eu tenha entendido algo errado, por favor não deixe de perguntar, pois as suas dúvida podem me levar a aprender mais sobre novos recursos da linguagem.