Errori, bug, domande - pagina 2461
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
Potrebbe approfondire questo punto?
Di seguito è la mia opinione soggettiva, se mi sbaglio da qualche parte, sarei felice di aiutare.
StringLen funzionava O(n) fino al primo carattere NULL (0x0000) nella stringa, ora funziona O(1).
Lalunghezza delle stringhe poteva sempre essere troncata tramite StringSetCharacter(str, pos, 0x00), ma hanno introdotto StringSetLength per qualche motivo.
Molto probabilmente, l'analizzatore ha risolto il compito di accelerare il codice quando si lavora con le stringhe.
Il compito di velocizzare il codice è stato risolto e a nessuno importa che metà della funzione ora gestisce i caratteri NULL nella stringa e l'altra metà no.
Il risultato:
Di seguito è la mia opinione soggettiva, se mi sbaglio da qualche parte, sarei felice di aiutare.
StringLen lavorava O(n) fino al primo carattere NULL (0x0000) nella stringa, ma ora funziona O(1).
Lalunghezza delle stringhe poteva sempre essere troncata tramite StringSetCharacter(str, pos, 0x00), ma hanno introdotto StringSetLength per qualche motivo.
Molto probabilmente, l'analizzatore ha risolto il compito di accelerare il codice quando si lavora con le stringhe.
Il compito di velocizzare il codice è stato risolto e a nessuno importa che metà della funzione ora gestisce i caratteri NULL nella stringa e l'altra metà no.
Il risultato:
StringLen lavorava O(n) fino al primo carattere NULL (0x0000) nella stringa, ora funziona O(1)
Agli sviluppatori:
Si prega di aggiungere la possibilità di specificare la generazione forzata di codice per l'operatore di assegnazione predefinito (costruttore di copia):
È un po' complicato. È più facile usare l'analogia con il costruttore di default:
1) qualsiasi operatore di assegnazione sovrascrive l'operatore di assegnazione predefinito
2) qualsiasi operatore di copia sovrascrive l'operatore di copia predefinito
Solo errori parzialmente corretti ... perché no!?
Poiché MQL non ha un'idea coerente quando si tratta di stringhe con caratteri NULL, questo è il problema.
Per esempio, StringToShortArray supporta i caratteri NULL in una stringa mentre la funzione inversa ShortArrayToString non lo fa...
Di conseguenza, si spende più tempo a catturare i bug e a cercare soluzioni piuttosto che a risolvere compiti particolari.
È un po' complicato. È più facile usare l'analogia con il costruttore di default:
1) qualsiasi operatore di assegnazione sovrascrive l'operatore di assegnazione predefinito
2) qualsiasi operatore di copia annulla l'operatore di copia predefinito
Non ho bisogno di annullare; ho bisogno, al contrario, di una generazione forzata.
MQL non ha funzionalità per la copia profonda di tipi complessi, e nell'operatore di assegnazione e nel costruttore di copia sono implementati di default.
Poiché non c'è un'idea coerente in MQL quando si tratta di stringhe con caratteri NULL, questo è il problema.
Per esempio, StringToShortArray supporta i caratteri NULL in una stringa, mentre la sua funzione inversa ShortArrayToString non lo fa...
Da un lato sì, dall'altro è esplicitamente dichiarato nella Documentazione: "o fino a quando il terminale 0 è soddisfatto".
Da un lato sì, dall'altro è esplicitamente dichiarato nella Documentazione(che non lo fa)
EStringToShortArray dice la stessa cosa:
Tuttavia, questo non gli impedisce di gestire adeguatamente i caratteri NULL nella stringa.