confusione sul comportamento delle variabili - pagina 5

 
Ci sono problemi con le linee, questo è un fatto. È strano che nessuno se ne occupi. Oh, no, non lo è. Manca solo un mese alla transizione.
 

Grazie per il riconoscimento MetaDriver e TheExpert, sono stufo di dimostrare qualcosa di sbagliato quando gli altri leggono solo tra le righe e danno commenti inappropriati.

Avevo sperato di segnalare correttamente l'errore qui sul forum, ma alcuni si sentono obbligati a dare una risposta senza entrare nel merito

 
wlad:

Ecco un esempio per confrontare il comportamento di stringhe e ints

e l'output nel log:

1. caricare EA e inizializzare le variabili globali

2. trasferimento di variabili esterne alle variabili globali. trasferimento una tantum implementato tramite bool firsttime

3. cambiamento delle variabili esterne

4. la differenza può essere vista qui.

tempString prende il valore di ValueString - sbagliato

tempInt mantiene il suo valore anche se ValueInt è cambiato - corretto

5 e 6 simili a 3 e 4


per favore, spiega perché la stringa si comporta in modo diverso

mentre l'Int è corretto

Per favore, datemi risposte specifiche.


Penso di aver capito qual è il problema... Se hai cambiato manualmente i parametri durante i test nelle proprietà EA, saranno salvati da qualche parte nei file .tpl e anche la ricompilazione di EA non aiuterà. Solo il pulsante "Reset" aiuterà. Se sia un bug o no, non lo so...
 
Si scopre che se si cambia qualcosa nel codice, extern rimane dalla versione precedente, precedente. E solo il reset dei parametri EA aiuta. È un bug o no? .... ancora una volta ripeto..... non lo so......
 
wlad:

Grazie per il riconoscimento MetaDriver e TheExpert, sono stufo di dimostrare qualcosa di sbagliato quando gli altri leggono solo tra le righe e danno commenti inappropriati.

Avevo sperato di segnalare correttamente l'errore qui sul forum, ma alcuni si sentono obbligati a dare una risposta senza entrare nel merito


dovreste formulare le domande correttamente, non avete detto nulla sul problema con il tester
 

questo non è un problema del tester!

1. l'EA funziona in modo normale sul grafico, non nel tester!

Non ho detto una parola sul tester, non so da dove l'hai preso!

2. I parametri esterni cambiano durante l'esecuzione!

3. il problema emerge più tardi con una variabile globale di tipo stringa, che erroneamente prende il valore

di una variabile esterna quando quest'ultima cambia.

 
wlad:

non è un problema del tester!

1. l'esperto funziona in modo normale sul grafico, non nel tester!

Non ho detto una parola sul tester, non so da dove l'hai preso!

2. i parametri esterni cambiano durante l'esecuzione

3. il problema si verifica in seguito con una variabile globale di tipo stringa, che erroneamente prende un valore

variabile esterna quando quest'ultima viene cambiata.


Curioso. Potresti per favore postare il codice completo di TestInit2.
 

Accidenti, forse sono scemo.... Ma funziona correttamente! ....Anche con il log che mi hai dato...

Al primo tick, tempString e tempInt vengono cambiati e poi emessi nel log. Già dal secondo segno di spunta non viene cambiato nulla, viene solo stampato. Mettere le stampe e i commenti prima dell'if. E vedrete la differenza.

 
valenok2003:

Curioso. Potresti per favore postare il codice di TestInit2 per intero.

tutti e tre gli esempi dati sono completamente postati

il codice è stato semplificato al minimo

 
Sepulca:

Accidenti, forse sono scemo.... Ma funziona correttamente! ....Anche con il log che mi hai dato...

Al primo tick, tempString e tempInt vengono cambiati e poi emessi nel log. Già dal secondo segno di spunta non viene cambiato nulla, viene solo stampato. Mettere le stampe e i commenti prima dell'if. E vedrete la differenza.

Non si legge davvero tutto.

Ho sottolineato che il problema è evidente quando si cambiano le variabili esterne.

Leggete attentamente l'esempio.


I primi esempi con iniit stampavano solo lo stretto necessario per individuare l'errore, l'ho appena convertito per chiamare

da start() perché molte persone erano confuse da init()