MQL4语言编程培训9:MQL4函数概念
9 @" k5 ]! P0 c& y5 Z- u/ H& N6 @
% _0 V' L2 _% q- A0 \7 M+ }$ \MQL4语言编程培训9:MQL4函数概念9 X" ]- g7 j' d; k4 t$ ~
* n1 w$ k$ [$ l1 p# @. v' r9 L- r) b
函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。
: `* M' W5 |% U+ [9 U6 a示例:5 y! ]+ J( ~. s" `" ^
! Q% s& X/ }+ H0 ldouble // 返回值的类型
9 ?1 e! a1 D4 m- ]0 nlinfunc (double x, double a, double b) // 函数名称和参量列表+ j. `* Y" z' r! B( s: a3 J1 ?) I
{
) ~' n, l6 M) ^& Y$ f8 U* u // 语句块
) C, e }& G! s) [5 ?- { return (a + b); // 返回表达式值
4 t; ?& {& b9 q2 u}
" i% @* _+ j5 Y, b. V6 Yreturn语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。
. f6 _; D: f- n! u; Y
+ w: t; n6 V, n( _+ p4 K示例:7 c' U. g1 m, E% i
/ @: h0 G4 s e8 n( e- _0 N0 U9 o
void errmesg(string s)
1 c; a# a) r* u0 T, M2 |& I: x {
3 h2 h: I5 Y/ l# ? Print("错误: "+s);
0 L! |+ O7 R- }* u7 Y1 v a }# Z5 p2 u& q% ~' d
函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。
9 R y7 ~/ e2 a7 J1 h. i/ e: I
1 m) p% T4 Q0 g2 Q; ?示例:; O9 t% |/ v' w2 _
3 g6 A9 w) @7 A* u
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")8 y' U2 i* u. i, V+ Z ^7 f
{3 H! @* X! g& A- y3 K) q
Print("需求参量 a=",a);
. h4 h+ f) a; J. e7 A; c4 `' f& G Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);# \! |" S5 I3 c) p
return (0);
, k$ F4 t! `- A5 E! F# f }: Q# {( J2 x% k9 A; j7 a
如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。1 @1 U3 ^1 E5 f6 k8 E
+ U. F; U+ I( W0 [
错误范例:
$ u1 I2 d, r1 m% ^+ n, o, K
4 v/ m' ~ l" d l& j6 ]int somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")
: u, b1 ^7 a; R* k" Q2 J {
- b* I% c1 m- W; V }
5 C; T) A2 V. ^: t! B1 @4 E: q函数调用
8 h" |" Q' }+ b% \) D& C如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。
$ f2 @ W! v9 _2 a6 X9 y# y
l' m5 r& e/ e5 _函数名称 (x1, x2,..., xn)
: D/ C5 N1 {6 y) d$ q, T: z' s函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。
- M1 n5 v, ?# o d+ z5 |0 R( a
$ H! S5 s6 U' c# {' O518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念." S) B5 t2 u; B! S
|