MQL4语言编程培训9:MQL4函数概念
/ H4 S( G4 h$ T9 x; w; R: [ a4 X; p/ M1 |; O% J/ h+ _3 R) M
MQL4语言编程培训9:MQL4函数概念$ K( I' X6 J: M3 A6 N! C8 T6 q) P
" R7 l* G' a+ l: k( }& x, g% ~. \函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。/ Z, |, C- R3 V8 n0 g' a. U1 L
示例:% G5 I W* e z9 A% E- F
2 O% @0 r3 f m" `* `$ O9 E8 b
double // 返回值的类型. w/ Y; Q5 y( p: J4 r) f
linfunc (double x, double a, double b) // 函数名称和参量列表
! O) w- A7 Z1 j{7 I! t/ o `+ B& P% f6 `
// 语句块
6 c/ z2 R4 {* W) o9 e3 i% a return (a + b); // 返回表达式值6 W1 J' S+ p8 D& }
}
9 Q9 \8 b) T' E2 B$ n1 Oreturn语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。9 J: M. I7 c' @1 q% u* o
/ G V- {+ u; g6 n1 _2 S示例:
8 I4 u/ s t/ p+ Z: _
8 p4 _8 `) L5 }" S+ ?0 g2 v* g7 `void errmesg(string s)/ a! r7 m/ s) j5 \
{, n- D% M6 t# \7 o+ h3 v
Print("错误: "+s);
8 Q3 v$ V+ Q2 m! z% E3 m8 }+ t }
" Z, r7 V1 K& i0 v3 ~: V$ Y! N函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。" k" z. S8 \! l
; j9 |: o5 A4 C2 {7 v" o: }6 V2 r
示例:! _1 f1 {) V, ?
/ a4 j# R* F/ ^9 P' d0 A4 X0 F
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string"). E- {7 P }: I; h. w1 J# q
{
( B# ]! E+ r8 N- t Print("需求参量 a=",a);
" G M# V; [/ V9 B4 u+ z U Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);
, A. [, w% a7 X4 K! B return (0);
& O7 ?( ^: R* C7 w1 `# l }$ ^* Z* w& }. I" x
如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。
8 d' U: {) E# _( c* u) Z2 a& M
. O- [) r8 H6 i, l0 g7 t1 {# a错误范例:8 M% y5 F& Z4 Q: Q' I2 @& e
/ t" H. c. p2 N0 a+ f7 n
int somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")
0 o8 ^2 a# j- O3 {. U4 S {
0 O, Q7 C; \) L1 } }' N) U2 o( I! s" }
函数调用
4 J7 Y1 X' J' E& v- W$ |3 V+ z0 I$ H) q如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。
+ m% v: C( [% R- y9 G( w' }+ z7 i) a6 C
函数名称 (x1, x2,..., xn)- N, P$ U8 a8 q, J5 w( S/ m
函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。
2 v, d! u3 x, t& k5 _
W0 _0 t& _- n1 I: A* S2 D5 b0 ^7 ~6 z: w
518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念.
! L6 ^" L) a' h H, G |