Variável com nome dinâmico

7 views
Skip to first unread message

Genison Junior

unread,
Sep 10, 2008, 2:49:22 PM9/10/08
to fle...@googlegroups.com
Boa tarde galera, fiquei com uma dúvida aqui sobre uma coisa, vejam se alguém tem alguma luz hehe
 
função exemplo:
 
public function teste(param1:String, param2:String):void
{
 switch(param1)
 {
  case "teste":
   var teste1:String = new StringValidator();
   teste1.source = textoInputado;
   ...
  break;
 }
}
 
Existe alguma forma dessa variável teste1 ser algo como teste1+param2?

Pergentino Araújo

unread,
Sep 10, 2008, 4:08:47 PM9/10/08
to fle...@googlegroups.com
Eita, isso me fez lembrar do veeeelho Clipper, que tinha como fazer

variavel&i = ...

Taí, não sei se Flex faz isso... seria totalmente interessante =D

2008/9/10 Genison Junior <gen...@gmail.com>



--
Atenciosamente, Pergentino.

gabriela perry

unread,
Sep 10, 2008, 4:15:26 PM9/10/08
to fle...@googlegroups.com
Espero que eu não me arrependa...
Tem sim.

Podes fazer com colchetes.

Tipo meuObj["algumacoisa"+i] é a mesma coisa que meuObj.algumacoisa1

Outra forma (provavelmente) seria usar Dictionary
Neste caso, tu não criarias uma variável, mas associaria o valor dela a um Dictionary que contém o teu objeto.

Assim
myDict[meuObj]="algumacoisa"+i;
Daí tu acessa o Dictionary pra ter o valor de "algumacoisa"+i

Exemplo ditático:
http://actionscriptgirl.com/?cat=5
 
Gabriela Trindade Perry - http://www.gabriela.trindade.nom.br




Date: Wed, 10 Sep 2008 17:08:47 -0300
From: jperg...@gmail.com
To: fle...@googlegroups.com
Subject: [flexdev] Re: Variável com nome dinâmico

Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

Mário Júnior

unread,
Sep 10, 2008, 4:52:44 PM9/10/08
to fle...@googlegroups.com
Não vai se arrepender não =D... vou te ajudar...

Pra quem é curioso (como eu) e gosta de estudar os componentes e seus comportamentos vendo suas implementações no fonte deles, verão que todo List-based Component do Flex usa essa técnica para recuperar um atributo do objeto passado no dataProvider.

O dataField do DatagridColum é um exemplo claro disso:
- Classe DataGridColumn.as
- Método: itemToLabel(data:Object) : String

Vejam na linha 1404 como é feito a renderização do valor de um atributo no item da célula do grid: (mais especificamente a linha 1419)
...
data = data[dataField];
...

dataField é uma string, que é passada pelo programador lá na propriedade do componente,  logo, ela é dinâmica!

Se os caras da adobe não se arrependem do seu uso, pq nós nos arrependeríamos???
Só alerto para q isso não vire um vício maligno ... pois pode parecer muito tentadora a idéia de aposentar o uso de VOs no Flex e usar dynamic objects... estilo:

var obj : Object = {}; //isso é igual a new Object();
obj["nome"] = "Mario";  //isso é igual a fazer  obj.nome = "Mario"
obj["idade"] = 24;
obj["cidade"] = "Maringá-PR";

trace(obj.toString());

Nesse caso, aposentar os VOs e usar só objetos dinâmicos já acho q é loucura demais... não aconselho.

((E teve gente q achava isso gambi.... =P))


Um abraço.

--
Mário de Souza Júnior
Programador Java / Adobe Flex
(44) 4009-3550 Maringá-PR
http://blog.mariojunior.com
junin...@gmail.com (gtalk, msn, etc..)

Pergentino Araújo

unread,
Sep 11, 2008, 12:17:27 AM9/11/08
to fle...@googlegroups.com
Não cara, não veja como gambiarra rsrsrs, se existe é por que tem onde aplicar \o/

muito bom este esquema de variavel dinamica, foi bom saber :D

[]'s

2008/9/10 Mário Júnior <junin...@gmail.com>



--
Atenciosamente, Pergentino.

Genison Junior

unread,
Sep 11, 2008, 7:20:42 AM9/11/08
to fle...@googlegroups.com
Muitíssimo obrigado Gabriela e Mário!
:]
----- Original Message -----
Sent: Thursday, September 11, 2008 1:17 AM
Subject: [flexdev] Re: Variável com nome dinâmico

Mário Júnior

unread,
Sep 11, 2008, 7:31:56 AM9/11/08
to fle...@googlegroups.com
Grande Pergentino... =D... eu não vejo como gambi não.. realmente é um recurso muito útil qnd bem aplicado.

É q certa vez, uma simples msg da Gaby falando sobre isso gerou uma polêmica enorme envolvendo "orientação a objetos", "formas de acesso a atributos", e "boas práticas de programação" .... coisas q não tinham nada haver ... tudo por causa de uma coisa simples.

Por isso q ela começou a reposta dela com a frase "Espero que eu não me arrependa..." (acho q ficou com trauma da discussão q tinha gerado anteriormente hehehe)
E, para completar a resposta dela, dei o exemplo de q no próprio Framework do Flex essa técnica é muito usada.

É bem como vc concluiu, Pergentino: "se existe é porque tem onde aplicar."

Só alerto ao cuidado para q isso não se torne "viciante"... hehehe =D

Beck Novaes

unread,
Sep 11, 2008, 9:07:29 AM9/11/08
to flexdev
** MINISTÉRIO DA SAÚDE ADVERTE: POST EXTENSO!

Esse negócio de Gambi é uma coisa engraçada. Vejo as pessoas muito
preocupadas com este tal uso dos colchetes por exemplo. Bem, penso eu
que existem inúmeras outras coisas mais importantes para se preocupar.
Não que o uso da notação de colchetes indiscriminada não deva ser
alertado. Mas o impacto que isto pode ter no código é bem menor, por
exemplo, do que usar o Command do Cairngorm ou do PureMVC APENAS para
fazer uma simples chamada no Backend e armazenar o resultado em alguma
propriedade no front-end. Notem a importância da palavra "APENAS. Se
você tem uma aplicação com mais de 5 commands e eles só fazem isso,
bem, são boas as chaces de você não precisar de fato de uma
Microarquitetura robusta como o Cairngorm/PureMVC ou de você estar
subutilizando o command. E eu não vejo quase ninguém discutindo isso.

Eu tenho a impressão que muitos programadores param no que aprendem
sobre conceitos de programação logo que dominam alguns princípios
básicos. Por exemplo, muitos ainda continuam tentando economizar
processamento em loops de 100 iterações. Muitos continuam achando que
dois loops sempre devem ser transformados em um quando possível.
Muitos continuam achando que trabalhar com XML no Flex é
necessariamente ruim. Muitos continuam achando que retornar uma Lista
com 500 objetos serializados do Back-end vai acarretar,
necessariamente, em problemas de performance. Muitos continuam achando
que a OOP se resume a notação de ponto. Mas poucos, poucos mesmo,
falam de de conceitos de programação mais atuais e práticos. Poucos
falam de Refatoração de verdade como Encapsulate Field, Extract Class,
Extract Interface, etc (http://www.refactoring.com/catalog/
index.html). Poucos discutem Design Patterns e OOP. Poucos se
preocupam com bons nomes de propriedades, métodos e classes. Poucos
discutem se a Herança está sendo corretamente aplicada ou se o melhor
seria a composição. Poucos conhecem bem o polimorfismo além da
sobrecarga de métodos. Poucos criam Interfaces nos seus projetos para
tirar proveito do Polimorfismo.

Bem, a minha pretensiosa crítica leva à pretensiosa conclusão: Não
acredite que apenas fazendo no dia-a-dia você se tornará um
programador acima da média. Saiba que os conceitos que lhe passam logo
que você está aprendendo a programar NÃO são os únicos. Existe uma
vasta literatura capaz de fazer com que você mude sua visão simplista
sobre programação (http://www.programmingbooks.org/
Books_Every_Programmer_Should_Read). Primeiro estude. Depois esqueça
tudo que aprendeu. Depois atinja o bom senso que só os programadores
acima da média tem.


[]'s
Beck Novaes



On Sep 11, 8:31 am, "Mário Júnior" <juninho...@gmail.com> wrote:
> Grande Pergentino... =D... eu não vejo como gambi não.. realmente é um
> recurso muito útil qnd bem aplicado.
>
> É q certa vez, uma simples msg da Gaby falando sobre isso gerou uma polêmica
> enorme envolvendo "orientação a objetos", "formas de acesso a atributos", e
> "boas práticas de programação" .... coisas q não tinham nada haver ... tudo
> por causa de uma coisa simples.
>
> Por isso q ela começou a reposta dela com a frase *"Espero que eu não me
> arrependa..."* (acho q ficou com trauma da discussão q tinha gerado
> anteriormente hehehe)
> E, para completar a resposta dela, dei o exemplo de q no próprio Framework
> do Flex essa técnica é muito usada.
>
> É bem como vc concluiu, Pergentino: "se existe é porque tem onde aplicar."
>
> Só alerto ao cuidado para q isso não se torne "viciante"... hehehe =D
>
> --
> Mário de Souza Júnior
> Programador Java / Adobe Flex
> (44) 4009-3550 Maringá-PRhttp://blog.mariojunior.com
> juninho...@gmail.com (gtalk, msn, etc..)

João Fernandes

unread,
Sep 11, 2008, 9:19:19 AM9/11/08
to fle...@googlegroups.com
Beck,

é sempre um enorme prazer ler os seus extensos posts, aos quais nunca
consigo adicionar nada...

--

João Fernandes

Adobe Community Expert
http://www.onflexwithcf.org
http://www.riapt.org
Portugal Adobe User Group (http://aug.riapt.org)

Elvis Fernandes

unread,
Sep 11, 2008, 10:34:10 AM9/11/08
to fle...@googlegroups.com
"Depois esqueça tudo que aprendeu."

Isso é importante, e não só em programação. O maior problema do ser humano é que qualquer mudança gera incômodo.

Comentários, links e indicações como essas nos motivam a sair da zona de conforto ...

Abraço!

Elvis Fernandes


2008/9/11 Beck Novaes <beck....@gmail.com>

Beck Novaes

unread,
Sep 11, 2008, 2:00:24 PM9/11/08
to flexdev
Virou post no blog :-)
http://blog.dclick.com.br/2008/09/11/bons-programadores-estude-esqueca-tenha-bom-senso/pt/

[]'s
Beck Novaes

On Sep 11, 11:34 am, "Elvis Fernandes" <elvisfernan...@gmail.com>
wrote:
> "*Depois esqueça tudo que aprendeu.*"
>
> Isso é importante, e não só em programação. O maior problema do ser humano é
> que qualquer mudança gera incômodo.
>
> Comentários, links e indicações como essas nos motivam a sair da zona de
> conforto ...
>
> Abraço!
>
> Elvis Fernandes
>
> 2008/9/11 Beck Novaes <beck.nov...@gmail.com>
> > index.html <http://www.refactoring.com/catalog/index.html>). Poucos
Reply all
Reply to author
Forward
0 new messages