Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 497
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Qui c'è scritto in biancohttps://docs.mql4.com/ru/basis/operators/for
https://docs.mql4.com/ru/basis/variables/variable_scope
Grazie, ma ho già letto il primo link e il secondo conferma la logica che ho usato quando ho scritto il codice.
Tuttavia, sono confuso da questa affermazione nel secondo link "... C'è un'altra variabile con lo stesso nome fuori da questo ciclo... "Ne consegue che il valore di una variabile globale rimane lo stesso nonostante il fatto che all'interno del blocco verrà dichiarata una nuova variabile con lo stesso nome, ma questo non ha senso perché se si dichiara una nuova variabile, il valore della prima verrà cancellato, quindi non capisco, che senso ha usare e memorizzare due variabili diverse (locale e globale), ma con lo stesso valore?
Grazie, ma ho già letto il primo link, e il secondo ha confermato la logica che ho usato quando ho scritto il codice.
Tuttavia, sono confuso da questa affermazione del secondo link "...fuori da questo ciclo c'è un'altra variabile con lo stesso nome... "Ma questo non ha senso perché se dichiarate una nuova variabile, il valore di quella precedente sarà cancellato, quindi non mi è chiaro, che senso ha usare e memorizzare due variabili diverse (locale e globale), ma con lo stesso valore?
Secondo me, lei sta scrivendo delle sciocchezze. Se dichiarate una variabile locale all'interno di un ciclo o di una funzione, il valore di una variabile globale con lo stesso nome non sarà influenzato, ma il compilatore vi avvertirà che avete dichiarato una variabile locale con lo stesso nome della variabile globale esistente e lavorando all'interno di una funzione o di un blocco di codice il cui scopo include la variabile appena dichiarata non influenzerà il valore della variabile globale. Vi avverte di questo in modo che capiate che questa è una nuova variabile, e in modo che non vi aspettiate che il valore della variabile globale cambi dopo aver lasciato lo scopo del blocco in cui avete dichiarato una nuova variabile con lo stesso nome della variabile globale esistente.
In termini semplici: tutto ciò che si trova all'interno dell'appartamento vale per tutte le stanze ed è condiviso da tutte le stanze (variabile globale). E tutto ciò che è dentro una stanza - si applica solo alla stanza e non è visibile da altre stanze (è una variabile locale).
Ancora più semplice? Per favore:
Se si incasina l'aria nella toilette (a livello locale), è lì che si incasina. Nel frattempo, tutto l'appartamento (globalmente) sa (come risultato dei tuoi esperimenti sul gabinetto) che è meglio non andare in bagno... Ma l'aria è un concetto per tutto l'appartamento, e tutti i residenti sanno dell'aria viziata nella toilette. Allo stesso tempo, solo la persona fortunata che si trova nella toilette può sperimentare pienamente tutte le delizie del cambiamento dell'ambiente locale all'interno dello spazio limitato (influenza locale del valore della variabile). Il resto di noi lo sa, ma non lo sente. Quando esci dalla toilette, perdi le sensazioni (valori locali) che hai provato nella toilette e cominci a respirare aria fresca (ottieni i valori globali dell'aria), pur sapendo, come tutti, che c'è un calcio nei pantaloni (il risultato della funzione di contaminazione dell'aria, che influisce sulla vita complessiva dell'intero appartamento)...
Spero di essere stato chiaro
Penso che lei stia scrivendo delle sciocchezze. Se dichiarate una variabile locale all'interno di un ciclo o di una funzione, il valore della variabile globale con lo stesso nome non verrà sovrascritto, ma il compilatore vi avvertirà che avete dichiarato una variabile locale con lo stesso nome della variabile globale esistente, e lavorando all'interno di una funzione o di un blocco di codice il cui scopo include la variabile appena dichiarata non influenzerà il valore della variabile globale. Vi avverte di questo in modo che capiate che questa è una nuova variabile, e in modo che non vi aspettiate che il valore della variabile globale cambi dopo aver lasciato lo scopo del blocco in cui avete dichiarato una nuova variabile con lo stesso nome della variabile globale esistente.
In termini semplici: tutto ciò che si trova all'interno dell'appartamento vale per tutte le stanze ed è condiviso da tutte le stanze (variabile globale). E tutto ciò che è dentro una stanza - si applica solo alla stanza e non è visibile da altre stanze (è una variabile locale).
Ancora più semplice? Per favore:
Se si incasina l'aria nella toilette (a livello locale), è lì che si incasina. Nel frattempo, tutto l'appartamento (globalmente) sa (come risultato dei tuoi esperimenti sul gabinetto) che è meglio non andare in bagno... Ma l'aria è un concetto per tutto l'appartamento, e tutti gli occupanti sanno dell'aria viziata nella toilette. Allo stesso tempo, solo la persona fortunata che si trova nella toilette può sperimentare pienamente tutte le delizie del cambiamento dell'ambiente locale all'interno dello spazio limitato (influenza locale del valore della variabile). Il resto di noi lo sa, ma non lo sente. Quando esci dalla toilette, perdi le sensazioni (valori locali) che hai provato nella toilette e cominci a respirare aria fresca (ottieni i valori globali dell'aria), pur sapendo, come tutti, che c'è un calcio nei pantaloni (il risultato della funzione di contaminazione dell'aria, che influisce sulla vita complessiva dell'intero appartamento)...
Spero di essere stato chiaro
Ho scoperto la verità nella tua opera - grazie! Si scopre che dichiarando una variabile all'interno di un blocco con lo stesso nome della variabile globale si bloccano i dati della variabile globale all'interno del blocco... e l'avvertimento sulla variabile già dichiarata non può essere rimosso, giusto?
Grazie, ma ho già letto il primo link, e il secondo ha confermato la logica che ho usato quando ho scritto il codice.
Tuttavia, sono confuso da questa affermazione del secondo link "...fuori da questo ciclo c'è un'altra variabile con lo stesso nome... "Ma questa assurdità perché se si dichiara una nuova variabile, il valore della prima sarà cancellato, quindi non mi è chiaro, che senso ha usare e memorizzare due variabili diverse (locale e globale), ma con lo stesso valore?
Purtroppo non è scritto correttamente :(
Sfortunatamente, è scritto male lì :(
Non lo dice bene nell'aiuto.
Perché mi dai il codice? Non so cosa cercare in esso... ...e sono limitato dal tempo. Potete dirmi a cosa serve e qual è l'errore nell'aiuto.
è il codice dell'aiuto
è "i" all'inizio della funzione
poi nel ciclo è di nuovo "i".
è il codice dell'aiuto
è "i" all'inizio della funzione
poi nel ciclo è di nuovo "i"
Bene, non c'è nessun errore: un ciclo con i globale (blu), e un altro ciclo con i locale (rosso)