MQL4语言编程培训9:MQL4函数概念" w6 n4 X" O$ \9 M+ C. j
. J, x# u1 u4 J, V
MQL4语言编程培训9:MQL4函数概念
/ K4 [- J; w* Y: J1 L0 U
: U7 e3 }1 g- a" B3 t: C r. i函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。
6 |- O0 d4 _! [9 f" e7 G: S示例:+ M- t$ e5 A$ b! z) E+ H
0 V# ?) j. F# y; {* y: e
double // 返回值的类型2 @! t8 _8 U1 I5 {+ ^/ M& y) e
linfunc (double x, double a, double b) // 函数名称和参量列表: P3 m. A1 a: v
{
$ {/ z7 K( l, b+ T3 F+ M // 语句块8 \* S# n% V. V# t/ }7 j! q
return (a + b); // 返回表达式值% R' n+ j" ^, ?3 E. A: q
}7 G* k8 P0 a$ H3 }
return语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。7 j0 O: @9 G. M. q/ y6 h' u4 L
5 Z. H' @* v% V7 M7 @7 \示例:, J+ y& `7 Q4 F& g% @8 I
# Y, W+ A. k& m* G6 X9 j. O$ |
void errmesg(string s)
3 N" p J9 p8 x( W0 D$ \( } {1 W: e( }: P" N ]. J+ U. T
Print("错误: "+s);: _! J. j( c: U: n' w
}8 `/ K+ J; Q3 \
函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。9 e2 h; H. q! g
6 M' t" ?4 c; T% N; b
示例:6 {+ {$ \9 {, o! J+ U% ]: A, ?
, H) W3 _4 g8 r- u; Y
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")0 k# g0 C: n% q1 ~3 y+ X2 V
{
( L& [0 c6 W5 Q2 e% W$ w Print("需求参量 a=",a);
2 Z& s$ j: {2 v' p0 K+ g2 q Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);+ l* r8 g& P& S( X; s
return (0);" E2 o" |4 C( L R f3 S6 _. O
}
3 Y) y% l& _# B如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。
2 L) q* E0 n$ _$ n$ r" i( d* q; V2 F4 F2 ]. s1 \4 w) q) D* Q8 v
错误范例:
/ {1 J2 I; A' J; V( X7 @$ L& f' @/ N, y7 Q" m! o& {
int somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")
9 J0 ?) k$ ]' Q D' y, v, O. i {$ Q; h0 L% G% Z7 R# O' J+ E' a- m
}
, `) r/ ^; V1 `* j2 z$ l函数调用* w1 |$ J8 d8 U& A9 d8 H: \: z
如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。: ]2 w7 w) L- }8 ~4 t. V! M
7 y# B' L5 k- g5 M+ N9 K
函数名称 (x1, x2,..., xn)# X7 z, l& i0 b. v5 O% d" a
函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。
$ G/ M) g1 _9 {) s: w/ W& D
3 D7 o& o( Y4 a+ S2 y& ?, v6 e: Z% y* e. C# o, ]
518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念.8 ^" s0 |& u! V- L B8 y' Q# |
|