Parametro com var
[color=red:db1c5af95f]Título editado por Massuda
Por favor, procure usar um título descritivo.
No caso de reincidência, seus tópicos poderão vir a ser bloqueados.
Leia as :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.[/color:db1c5af95f]
Bom dia amigos!
Estou postando essa dúvida mais por curiosidade do que por necessidade, acho que é uma coisa que eu já deveria saber, mas...
Qual a diferença de declara:
Procedure Teste(var teste: string);
Procedure Teste(teste: string);
Pode ser feito isso tabém:
function teste(var teste:string):string;
function teste(teste: string):string;
Eu já vi isso em algum lugar só não me lembro onde
Ruyoutor
Curtidas 0
Respostas
Ruyoutor
09/01/2007
Foi mau pelo titulo do assunto, eu não sabia que teria problema
GOSTEI 0
Massuda
09/01/2007
Dê uma olhada :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=73443]neste tópico[/url] que reúne várias dúvidas, uma delas envolve [b:7a606b7a5e]passagem de parâmetros por valor e por referencia[/b:7a606b7a5e] que deve responder sua dúvida sobre o [b:7a606b7a5e]var[/b:7a606b7a5e].
Quanto ao título, procure usar algo descritivo, já que o fórum não ajudaria muito as pessoas se estivesse cheio de tópicos com títulos do tipo ´Dúvida´ ou ´Preciso de ajuda!´.
Quanto ao título, procure usar algo descritivo, já que o fórum não ajudaria muito as pessoas se estivesse cheio de tópicos com títulos do tipo ´Dúvida´ ou ´Preciso de ajuda!´.
GOSTEI 0
Ruyoutor
09/01/2007
Mais uma vez.
Valeu Massuda!
Você é o cara
Valeu Massuda!
Você é o cara
GOSTEI 0
Ruyoutor
09/01/2007
Massua, vê se entendi quan eu declaro assim:
procedure teste(var teste: string);
eu posso modificar o parâmetro dentro da procedure
e se eu declarar assim:
procedure teste(const teste:string);
eu não posso modificar o parâmetro dentro da procedure
i se eu declara assim:
procedure teste(teste:string);
procedure teste(var teste: string);
eu posso modificar o parâmetro dentro da procedure
e se eu declarar assim:
procedure teste(const teste:string);
eu não posso modificar o parâmetro dentro da procedure
i se eu declara assim:
procedure teste(teste:string);
GOSTEI 0
Massuda
09/01/2007
procedure teste(const teste:string);
eu não posso modificar o parâmetro dentro da procedure
OK, o parametro é constante/read-only.procedure teste(var teste: string);
eu posso modificar o parâmetro dentro da procedure
...
i se eu declara assim:
procedure teste(teste:string);
Nos dois casos, você pode modificar o parametro dentro da procedure. A diferença é que usando [b:8d55be088f]var[/b:8d55be088f] faz com que modificações feitas dentro da procedure sejam ´sentidas´ fora da procedure.Como o [b:8d55be088f]var[/b:8d55be088f] faz com que a passagem de parametros seja por referencia, a string dentro da procedure é a mesma variável que você passou para a procedure. Se você modificar o parâmetro, você estará modificando a variável.
Sem o [b:8d55be088f]var[/b:8d55be088f] a passagem de parametros é por valor, de modo que é criada uma nova string para uso pela procedure com o mesmo conteúdo da variável que você passou para a procedure. Assim, se você modificar o parâmetro, você estará modificando a cópia, não tendo efeito sobre a variável.
GOSTEI 0