Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Marcos Douglas B. Santos
    @mdbs99
    Veja a cláusula uses, vc deve estar confundindo o compilador
    Manoel Pedro Jr
    @Manoelgjr_twitter
    @mdbs99 por incrivel que pareça era na uses mesmo mais na ordem tive que colocar na uses com essa ordem observer.classes, observerinterfaces, semaphore1 com a semaphore1 na frente dava aquele erro ^^
    Marcos Douglas B. Santos
    @mdbs99
    @Manoelgjr_twitter o compilador lê as units declaradas da direita para esquerda
    Fabricio Cabral
    @fabriciofx
    O uses funciona como operador (por causa da associatividade)?
    Marcos Douglas B. Santos
    @mdbs99
    O uses é o mesmo que o import do Java
    Mas se eu tiver um identificador (uma classe, record, constante, etc... não importa) com o mesmo nome em duas units diferentes, como o compilador irá saber qual utilizar?
    Bem, ele (compilador) faz a leitura de baixo pra cima, exemplo:
    uses
      Unit1, Unit2, Unit3;
    var
      F: TFoo;
    begin
      F := TFoo.Create;
    end;
    No código acima, se tivermos uma Classe TFoo declarada em cada uma das 3 Units, o compilador irá utilizar a primeira que encontrar, ou seja, a da Unit3. Ele lê de baixo pra cima, da direita para a esquerda, até encontrar um identificador.
    Marcos Douglas B. Santos
    @mdbs99
    No Java, no entanto, se houver 2 identificadores com o mesmo nome em 2 arquivos "importados", dá erro. O compilador não sabe qual identificador usar, obrigando o programador utilizar a declaração completa nome.da.unit.completa.mais.o.nome.da.classe
    Fabricio Cabral
    @fabriciofx
    Bem, ele (compilador) faz a leitura de baixo pra cima, exemplo:
    De baixo pra cima? O compilador começa lá do end; até o uses?
    Marcos Douglas B. Santos
    @mdbs99
    Não. Estou falando apenas sobre encontrar identificadores
    Unit1, Unit2, Unit3; <<< ele começa a procurar daqui
    até aqui >>> Unit1, Unit2, Unit3;
    E em cada Unit que ele entra, ele faz o mesmo, é claro
    Fabricio Cabral
    @fabriciofx
    Interessante. Tem comportamento de associatividade de operadores. É como se o uses fosse um operador.
    Veja por exemplo a seguinte sintaxe:
    var
      x , y, z: Integer;
    begin
      x := y := z := 2;
    (desculpe se tiver algum erro, mas meu Pascal-fu está uns 20 anos enferrujado :D)
    O operador de atribuição tem associatividade da direita para a esquerda (é um dos poucos assim)
    Por isso que essa sintaxe é válida e funciona: o 2 é adicionado ao z, depois o valor de z é adicionado ao y e depois o valor de y é adicionado a x
    Isso obviamente, assumindo que dá pra fazer esse tipo de operação em Pascal, pois não lembro se é possível. É possível?
    Marcos Douglas B. Santos
    @mdbs99
    Não é possível. Apenas 1 por vez.
    Fabricio Cabral
    @fabriciofx
    Vixe.
    Marcos Douglas B. Santos
    @mdbs99
    var
      x , y, z: Integer;
    begin
      z := 2;
      y := z;
      x := y;
    Manoel Pedro Jr
    @Manoelgjr_twitter
    @mmdbs99 Hummm muito interessante isso,
    @Manoelgjr_twitter o compilador lê as units declaradas da direita para esquerda
    Fabricio Cabral
    @fabriciofx
    @mdbs99 Do ponto da legibilidade fica melhor, né?
    Marcos Douglas B. Santos
    @mdbs99
    Sim
    Marcos Douglas B. Santos
    @mdbs99
    @/all
    Para quem ainda não leu, este é o post dessa semana http://objectpascalprogramming.com/herdar-para-rotular
    Fabricio Cabral
    @fabriciofx
    Já li e já postei vários comentários... até fiz um código equivalente em Java! :)
    Marcos Douglas B. Santos
    @mdbs99
    @fabriciofx vou responder lá assim que puder
    Fabricio Cabral
    @fabriciofx
    :+1:
    Manoel Pedro Jr
    @Manoelgjr_twitter
    @mdbs99 Tais por ai Marcos?
    Boa noite a todos que estiverem por aqui
    Fabricio Cabral
    @fabriciofx
    @Manoelgjr_twitter Boa noite! :)
    Marcos Douglas B. Santos
    @mdbs99
    @Manoelgjr_twitter eu não estava online...
    Manoel Pedro Jr
    @Manoelgjr_twitter
    @mdbs99 O artigo de hoje "Estado do Objeto" me deixou boiando, não consegui entender o conceito. Vou reler bastante para ver se consigo entender.
    Fabricio Cabral
    @fabriciofx
    @Manoelgjr_twitter Espero que você entenda também o meu comentário... :)
    Marcos Douglas B. Santos
    @mdbs99
    @/all bom dia
    @Manoelgjr_twitter não deixe de fazer um comentário por lá. Suas dúvidas podem ser as mesmas de outras pessoas :+1:
    Fabricio Cabral
    @fabriciofx
    @mdbs99 Bom dia. Eu já deixei meus comentários lá!
    @Manoelgjr_twitter Mas penso seriamente em parar de comentar... vai que o @mdbs99 acha que eu tô pegando no pé dele... :laughing:
    Manoel Pedro Jr
    @Manoelgjr_twitter
    @fabriciofx è pode acabar pensando mesmo. :laughing:
    Fabricio Cabral
    @fabriciofx
    kkkkkkkk
    Manoel Pedro Jr
    @Manoelgjr_twitter
    @fabriciofx Hoje a tarde eu vou dar uma nova lida lá no artigo para ver se as idéias clareiam.^^
    Fabricio Cabral
    @fabriciofx
    Mas eu só que eu aprendo MUITO com os posts do Marcos e com o debate gerado nos comentários. MUITO mesmo!
    @Manoelgjr_twitter Às vezes demora para entender mesmo. Tem que ler várias vezes.
    Teve artigo do Marcos, sem brincadeira, que eu li umas 10x pra tentar entender
    E acho que ainda não entendi direito
    Manoel Pedro Jr
    @Manoelgjr_twitter

    Idém

    Mas eu só que eu aprendo MUITO com os posts do Marcos e com o debate gerado nos comentários. MUITO mesmo!

    Fabricio Cabral
    @fabriciofx
    A forma do Marcos pensar é MUITO interessante
    Para quem não está acostumado 100% com OO, estranha mesmo