Sobre variaveis Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

User avatar
Hologram
Posts: 140
Joined: 06 May 2020, 16:47

Sobre variaveis

09 Jun 2020, 18:27

Eu gostaria de saber se por exemplo, quando eu criar uma variavel de valor inicial que seja = 0, e conforme o script for sendo rodado e eu atribuir novos numeros pra essa mesma variavel, ela vai substituir o valor anterior, ou vai armazerar os varios valores dados a ela?
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Sobre variaveis  Topic is solved

09 Jun 2020, 19:35

Boa noite Hologram.

Em baixo nível as variáveis são como apelidos para endereços específicos da memória RAM. Mesmo apelido = Mesmo endereço; Apelido diferente = endereço diferente.

Então se você reescrever o conteúdo de uma variável, você estará reescrevendo os dados de um mesmo endereço da memória RAM, o que significa que os dados anteriores (que estavam naquele endereço) serão perdidos para que os novos dados sejam ali escritos.

Mas para evitar isso, você pode copiar o conteúdo daquela variável para outra variável antes de reescrever o conteúdo dela, por exemplo.

Code: Select all

Var1 := 120 ; Var1 recebe o valor 120
Var2 := Var1 ; Depois, Var2 recebe o valor de Var1
Var1 := 150 ; Em seguida, reescrevemos o valor de Var1 para 150
msgbox % "Var1: " . Var1 ; Agora se exibimos Var1, aparecerá 150
msgbox % "Var2: " . Var2 ; No entanto, como antes nós copiamos o conteúdo de Var1 para Var2 e não reescrevemos Var2 depois disso, então Var2 ainda contém 120

:arrow: Mas se a sua pergunta vem de um interesse em poder visualizar o conteúdo de uma variável antes que ela mude no script, você pode usar uma msgbox ou tooltip para fazer isso. Basta colocar esse comando na linha certa observando a ordem de execução. Exemplo:

Code: Select all

Var1 := 120 
msgbox % Var1 ; Posso checar o que a variável tinha antes de seu conteúdo ser reescrito programando uma msgbox na linha anterior a isso.
Var2 := Var1 
Var1 := 150 
msgbox % "Var1: " . Var1 
msgbox % "Var2: " . Var2

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 9 guests