Versione beta dell'IDE di MetaTrader 4 che include un nuovo compilatore ed editor MQL4 - pagina 7

 
MetaQuotes:

1. Abbiamo parlato dei parametri in start/init/deinit perché non dovrebbero mai essere lì, ma ci siamo imbattuti in esempi di codice sorgente in cui gli autori hanno aggiunto parametri non necessari per errore. Nel vecchio MQL4 veniva saltato senza un suono, mentre in MQL5 è già segnalato come errore. Non c'è nessun problema qui - solo un errore molto raro sarà immediatamente visibile.

2. Se avete affrontato problemi con la DLL e il passaggio di array di stringhe multidimensionali nella DLL, saranno tranquilli. Gli sviluppatori hanno tutte le possibilità di lavorare con le strutture e non c'è bisogno di costruire stampelle sui fili.

La nuova versione di MQL4 dà un sacco di nuove caratteristiche, pur mantenendo la compatibilità.

1. Ne ho molti in cui questa funzione viene utilizzata. Non credo di essere l'unico.

2. Evidenziato è grande! Ma lascia la compatibilità con quello vecchio!

Meta-Citazioni:

Non c'è bisogno di farsi prendere dal panico. Scaricate il pacchetto IDE+MQL offerto e controllate i vostri sviluppi.

Il compilatore ora ha un ottimo analizzatore e dà facilmente avvertimenti su pericolosi mix di espressioni logiche. Per favore, provate voi stessi.

Anche questo è fantastico! I codici nella Code Base non sono stati scritti solo da professionisti. Sicuramente non ci sono parentesi nelle espressioni logiche. Questi codici non funzionano. Fare una chiave per il compilatore per saltare le vecchie regole.
 
MetaQuotes:

Coloro che hanno lottato con la DLL, e anche con il passaggio di array di stringhe multidimensionali nella DLL, al contrario, tirano un sospiro di sollievo. Gli sviluppatori potranno lavorare con le strutture e non dovranno più costruire stampelle su stringhe.

Perché le stampelle? Cosa c'è di sbagliato in un array di stringhe? A proposito, ho letto male questo paragrafo all'inizio, e si scopre che riguarda gli array di stringhe, non solo gli array multidimensionali. Come può essere così? Come suggerisci di sostituire l'array che viene passato con la struttura? Per esempio, dovete fare quanto segue per un array di 1000 stringhe

struct StrStruct { stringa a1; stringa a2; stringa a3; .... stringa a1000; } R; E poi ogni membro dovrebbe essere inizializzato? Questa è una sciocchezza.

La nuova versione di MQL4 dà un sacco di nuove caratteristiche mantenendo la compatibilità.

Solo la compatibilità non è completa.
 
Meat:

Perché le stampelle? Cosa c'è di sbagliato in un array di stringhe? A proposito, non ho letto attentamente questo punto all'inizio, e si scopre che non riguarda solo gli array multidimensionali ma gli array di stringhe in generale. Come può essere così? Come suggerisci di sostituire l'array che viene passato con la struttura? Per esempio, dovete fare quanto segue per un array di 1000 stringhe

struct A { stringa a1; stringa a2; stringa a3; ..... stringa a1000; }; E poi ogni membro deve essere inizializzato? Questa è una sciocchezza.

Solo la compatibilità non è completa.


Una struttura viene passata come una stringa ed è completamente equivalente ad essa. Qualsiasi operazione sulla stringa è applicabile alla struttura.
 
Zhunko:

1. E questo?!

Molto fedele alla forma, comunque. Non è una caratteristica poco commentata. Anch'io lo usavo spesso.
 
tara:

Una struttura viene passata come una stringa ed è completamente equivalente ad essa. Qualsiasi operazione su una stringa è applicabile alla struttura.

Non capisco. In che senso?
 
Meat:

Non capisco. Cosa vuoi dire?

In termini di database, i campi si uniscono. Si fondono.
 
tara:

Nel caso dei database, i campi si uniscono. Sono fusi.
Non ha alcun senso. Quali sono i database? Da dove vengono in MQL? Qui abbiamo un array: stringa A[1000]; Come passarlo alla DLL?
 
Meat:
Non ha alcun senso. Quali altri database ci sono? Da dove vengono in MQL? Qui abbiamo un array: stringa A[1000]; come può essere passato nella DLL?


Alexey, se hai un array di stringhe bidimensionale, puoi facilmente sostituirlo con un array unidimensionale di strutture.

A proposito, sarebbe una combinazione più espressiva :)

 

Vadik è solo arrabbiato per l'inevitabile concorrenza. ;) // imha autosabotaggio

Una volta era una "panacea" con le sue librerie, ma ora saranno molto meno richieste - quasi tutto può essere fatto senza di loro, e molto di ciò che non può essere fatto può essere trovato già pronto in kodobase su mql5.com

Vadim, cerca i professionisti, ce ne sono ordini di grandezza in più.

 
MetaDriver:

Vadik è solo arrabbiato per l'inevitabile concorrenza. ;) // imha autosabotaggio

Una volta era una "panacea" con le sue librerie, ma ora saranno molto meno richieste - quasi tutto può essere fatto senza di loro, e molto di ciò che non può essere fatto può essere trovato già pronto in kodobase su mql5.com

Vadim, cerca i professionisti, ce ne sono ordini di grandezza in più.

Il tuo codice è "più vicino al punto". Raramente c'è qualcosa nel dominio pubblico che "non vale la pena rifare".