Errori, bug, domande - pagina 1332
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Il tuo consiglio non ha senso nella pratica. Nessuno dà nomi identici di proposito. Il codice della funzione locale vive la sua vita separata mentre il programma esterno vive la sua vita. E i nomi delle variabili esterne possono cambiare nel tempo e nuove variabili esterne possono essere aggiunte.E se dopo, improvvisamente una delle centinaia di funzioni hauna variabile locale con lo stesso nome, cosa pensi che dovremmo rinominare la variabile globale? Non dovresti cercare scuse per i bug degli sviluppatori.
Non stavo cercando una scusa per i bug degli sviluppatori, ma questo bug è facilmente aggirabile non usando gli stessi nomi di variabili che sono responsabili dei parametri di input quando si lavora in un progetto. Basta cambiare il nome nei parametri di input, dubito che tu abbia centinaia di variabili nei tuoi parametri di input e abbia bisogno di modificare tutto il codice :) la parte principale del codice è di solito scritta al punto di ingresso del software e non è così grande, tutto è fatto da chiamate di funzioni(metodi). E per le funzioni (metodi) non c'è differenza sul nome di una variabile che viene passata nei parametri di input della funzione.
Naturalmente, se scrivete codice in cui le funzioni usano variabili globali, allora, naturalmente, dovrete cambiare un sacco di cose, ma questo codice è scritto senza alcuna visione, è davvero difficile da modernizzare.
Anche se se si guarda lo sviluppatore (MetaQuotes) con un punto di vista di consumatore, naturalmente, si vuole un sacco di tutto in una volta :) Mi piacerebbe lavorare in un terminale che è multipiattaforma, ma la risposta a questa richiesta sarà una - o usi quello che hai o lo passi :)
Basta cambiare il nome nei parametri di input...
Lei ha un punto di vista un po' troppo superficiale. Basta cambiarlo così... Poi qualche altra funzione sarà aggiunta al codice dove il nome della variabile locale corrisponde, e dovrete cambiarlo di nuovo, giusto? Il nome di una variabile esterna non è solo un mucchio di lettere, ha un significato specifico. A volte devi pensare molto per trovare un nome conciso e succinto per esso, e dici - cambialo. E tutte le impostazioni preimpostate, così come le impostazioni del tester e dell'ottimizzatore saranno perse per questo parametro se il nome viene cambiato.
Supponiamo che abbiate inserito qualche funzione da qualche parte all'esterno, forse non è stata nemmeno scritta da voi, quindi i nomi delle variabili locali possono essere assolutamente qualsiasi.
Lei ha un punto di vista un po' troppo superficiale. Poi qualche altra funzione viene aggiunta al codice dove la variabile locale ha lo stesso nome, e dovete cambiarla di nuovo, giusto? Il nome di una variabile esterna non è solo un mucchio di lettere, ha un significato specifico. A volte bisogna pensare bene per trovare un nome succinto e sintetico per esso, e tu stai dicendo - cambialo. E tutte le impostazioni preimpostate, così come le impostazioni del tester e dell'ottimizzatore saranno perse per questo parametro se il nome viene cambiato.
Supponiamo che abbiate inserito qualche funzione da qualche parte all'esterno, forse non è stata nemmeno scritta da voi, quindi i nomi delle variabili locali possono essere assolutamente qualsiasi.
Faccia come crede, ma sembra che non abbia scritto nessun grande progetto.
Non ha senso per me guardare le mie definizioni di funzione, perché ho una chiara distinzione nello stile di dichiarazione dei nomi delle variabili globali e locali. Pertanto, non incontro problemi come la coincidenza di nomi di variabili globali e locali. L'importante è che le funzioni elaborino la loro logica senza collisioni. Nel tuo caso c'è un grande MA, se fai coincidere il nome di una variabile globale con il nome di una variabile locale, aspettati delle sorprese, che hai già iniziato a chiarire.
Per esempio, mettete un _ in più nel nome della variabile locale, per esempio _iCount. In questo caso non avrete mai problemi con i nomi delle variabili, perché realizzerete ciò che state cercando di spiegarmi la seconda volta - le variabili vivono in un ambito locale, dove sono state create. E nessuna variabile globale in questo caso non introdurrà ambiguità nei nomi. E chiudiamo la nostra discussione a questo punto.
Tornando al mio post precedente. MT4/845, Windows7/64 bit, script:
Risultato:
Amministrazione, aggiungete in DoubleToString che questa funzione arrotonda i numeri in virgola mobile alla precisione specificata.
È una buona idea non nominare le variabili locali e di input allo stesso modo
È una buona idea non nominare le variabili locali e di input allo stesso modo
Prova a continuare la linea in ME nel file allegato senza spazi
Quando si discute di un problema, va bene collegarsi a un prodotto sul mercato? O questo sarebbe considerato pubblicità e proibito?
Risultato di compilazione discutibile dopo l'operatore ? :
Risultato: 65618 (come ha fatto a diventare così?), e dovrebbe esserci un errore di compilazione