



Fala galera do Show Delphi tudo beleza?
Quando fazia faculdade a alguns anos atrás, e normalmente utilizando java, era muito comum que nos algoritmos a gente iniciava as variáveis já no momento que as declarava.
Exemplo em java
1 | int meuNumero = 10; |
E no Delphi sempre precisava iniciar manualmente, ou seja conforme este código:
1 2 3 4 5 6 7 8 9 | procedure meuTeste; var meuNumero : Integer; begin { Agora que vou iniciar a variável } meuNumero := 10; //... end; |
Isso me incomodava um pouco, porque gostava bastante do Delphi / Lazarus (Object Pascal para os detalhistas rsrsrs), até acho que devia utilizar ao menos o Lazarus nas faculdades por ser leve, simples e opesource, mas este é um papo para outro post.
Então pesquisando descobre que sim, agora é possível iniciar diretamente também.
Provavelmente só nas versões mais recentes do Delphi, provavelmente a partir da 2009 (Não tenho a informação exata).
Testei no Lazarus 2.0.4 e também tudo funcionando bonitinho.
Legal, vamos aos exemplos. No código abaixo eu fiz o teste com três casos, uma variável Integer, uma variável Double e uam função com uma variável string dentro.
Testando no Lazarus este código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | program Project1; uses Classes; var I : Integer = 8; NumeroCasas : Double = 5.7; function Mensagem : string; var a : string = 'show delphi - compartilhando conhecimento'; begin Result := a; end; begin WriteLn(I); WriteLn(NumeroCasas :0:2); // :0:2 é uma forma de formatar os valores WriteLn(Mensagem); ReadLn; end. |
A princípio esta forma de iniciar valores são para as variáveis de dados primitivos, ou seja que não precisam do .Create. Caso alguém saiba mais formar de inicializar variáveis, ou informar valores por padrão, por favor compartilhem nos comentários.
Eu particularmente gostei bastante desta forma de código e até vou começar a utilizar por padrão nos exercícios de algoritmos que estamos postando aqui na comunidade.
Fonte de referência: https://stackoverflow.com/questions/132725/are-delphi-variables-initialized-with-a-value-by-default
Como de costume, também fizemos um vídeo para explicar melhor o conteúdo do post.
Dúvidas ou sugestões pessoal? Deixe ou seu comentário!
Por hoje é isso, uma abraço e até a próxima. Valeu!
Você precisa fazer o login para publicar um comentário.
O Delphi Rio já permite iniciar variáveis em qualquer lugar, como no php. Na minha opinião, acho que isso não é uma boa prática de programação mas, vai do gosto de cada um. Outra coisa não recomendada, é a utilização de variáveis globais, ao invés disso, uma alternativa é a utilização de properties.
Espero ter contribuído!
Este recurso sempre existiu no Delphi, sempre foi possível inicializar variáveis globais no contexto de sua definição como nos exemplos acima, não é permitido tal pratica para variáveis que não estejam no escopo global da unit.
Fiz um teste no delphi 10.1 berlin e a linha de inicialização dentro da function não funcionou, no caso:
mais as outras que foram inicializadas no inicio da clausula uses. funcionou perfeitamente, inclusive coloquei a variável declarada lá é ficou legal…
Grato, t+ Edson Lima