Descrierea funcțiilor și a operatorilor de a reveni Statement - operatori - un manual privind MQL4 - manual pe MQL4

Dacă este necesar să indicați în program pot distinge 2 grupe de funcții: funcții care descriu programul nu sunt specificate, și funcții, dintre care descrieri sunt specificate în program. Descrierea funcțiilor standard ale programului nu sunt specificate. Descrierile funcțiilor definite de utilizator trebuie să fie prezent în program este obligatorie. Descrieri de caracteristici speciale, în cazul în care acestea sunt utilizate, așa cum este indicat în program.







Descriere Formatul funcției

Descrierea funcției este format din două părți de bază - antet și funcția de corpul funcției.

Antetul Funcția conține o indicație a tipului de valoarea de returnare, numele funcției și lista de parametri formali între paranteze. Dacă funcția nu returnează nici o valoare, tipul său desemnat nule.

Corpul Funcția poate consta din operatori simpli și / sau compozite, apelurile către alte funcții, și este cuprins intre paranteze.

Lista parametrilor este specificat, separate prin virgulă. Numărul de parametri trecut la funcția este limitată și nu poate depăși 64. Ca parametri formale în antetul funcției poate fi indicată numai variabile (dar nu și constantă, apelurile către alte funcții sau expresii). Numărul, tipul și ordinea parametrilor transmiși în funcția de apel ar trebui să coincidă cu numărul, tipul și ordinea de parametrii formali specificate în descrierea funcției (cu excepția funcției de apel care au parametrii cu valoare implicită):

Parametrii trecut la o funcție poate avea valori implicite care sunt specificate de constante de tip corespunzătoare:

Dacă apelați o funcție cu valori implicite, sunt specificate parametrii reale, valorile parametrilor actuali care urmează să fie trecut la calculul funcției. Dacă apelați o funcție cu valori implicite, nu este prezentat nici un parametru real la funcția sunt efectuate în calcularea valorilor implicite corespunzătoare.







Funcții speciale pot avea, de asemenea, parametri. Cu toate acestea, atunci când aceste funcții parametrii nu vor fi transferate în afara terminalului clientului, vor fi folosite ca valori implicite. Funcții speciale pot fi apelate din orice locuri de modul în conformitate cu regulile generale, împreună cu alte funcții.

executie funcția Reguli

Se pune în program pentru a descrie funcția:

Descrierea funcției trebuie să fie în program separat, în afara oricăror alte funcții (adică, nu în orice altă funcție, și în afara).

Chemat pentru executarea funcției este executat în conformitate cu codul care constituie corpul funcției.

Formatul declarației de returnare

Valoarea de retur - valoarea parametrului specificat într-o declarație de retur între paranteze. O declarație de returnare este format din întoarcere de cuvinte cheie, expresii, între paranteze și se termină cu; (Virgulă). Full-retur lungime Declarație:

executarea regulii unei declarații de returnare

Declarație de returnare se termină executarea cea mai apropiată funcției externe și transferă controlul la programul de apel, în conformitate cu normele definite pentru apel. Valoarea returnată este valoarea expresiei specificate într-o declarație de returnare. În cazul în care tipul de valoarea parametrului a declarației de returnare nu este identic cu tipul de întoarcere, menționat în funcția de titlu, valoarea dată de tipul de valoarea returnată, la titlu.

Un exemplu de utilizare a unei declarații de returnare care returnează o valoare:

Funcțiile de a returului tip void este necesar să se utilizeze o declarație de întoarcere fără expresie:

Un exemplu de utilizare a unei declarații de întoarcere cu nici o valoare de întoarcere:

În descrierea funcției poate fi absența operatorului return. În acest caz, funcția va închide automat în cazul în care (în conformitate cu algoritmul executabil) în corpul funcției a fost executată ultima declarație. Exemplu de descriere a funcției în care operatorul retur Necunoscut:

În acest caz, funcția se închide la sfârșitul executării pentru loop. Ultima mișcare a performanței funcțiilor va verifica condițiile în declarația de buclă. De îndată ce starea în buclă pentru declarația devine falsă, de control va fi transmis în afara operatorului ciclului. Dar, din cauza faptului că operatorul ciclu este ultimul operator executabil în funcția My_function corp (), funcția personalizată va ieși și de control vor fi transmise în afara funcției, este în locul în care funcția a fost chemat pentru executare.