MQL4语言编程培训9:MQL4函数概念 v5 I4 {7 o5 ~& n) K1 |. `' j
, X3 w0 _7 t- \, I3 C; B, uMQL4语言编程培训9:MQL4函数概念
4 b! O$ z) O! K. Y7 x' i) _0 l# \- b6 ?
7 X5 ]+ W# B1 }7 [7 [函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。
1 U% `4 F( e; Q2 n示例:; v0 j R9 v K/ E
, U% \* ^) o6 r. k$ Q# W! \
double // 返回值的类型
- r5 ~. m, X% k$ p, k# ~# ?linfunc (double x, double a, double b) // 函数名称和参量列表
9 t# [1 D4 @0 _8 m$ \6 b{
2 q' K- \: l. _( X4 D$ s // 语句块
: I6 j. J R6 X return (a + b); // 返回表达式值8 D: P* J7 E. s
}
% p( U* x- p& p2 yreturn语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。" n/ s0 g) {8 P( L* Y* @/ w/ a
1 ^( u& V- _% M$ P4 S' y( l% x. @
示例: Y, B6 u1 g( i2 K* J7 G4 W
+ D9 A4 ]- \! L. C# n# |8 Z
void errmesg(string s)
2 t. r6 v" u4 D; [/ q ? {
, x: }" z" j! |" [ Print("错误: "+s);2 _8 _' `1 H6 |# b4 |, S z) ^
}) u+ X4 k2 i! z0 n9 q, d" i; [
函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。
( h! W* w0 o- ~0 ^. P9 c+ c4 F; Y1 t
示例:
6 g+ d2 K1 T- ?3 i0 G3 M5 m8 P( j7 P0 f& n8 G# H& X
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")
8 D/ y% V: _- q2 K4 m" g! _% x6 u {* C3 Z/ s5 p! k' {; T& H" c
Print("需求参量 a=",a);
" ^) m5 C5 _! x7 A9 ~. z3 z Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s); R1 @# ?! R: x+ U9 ?: V
return (0);$ n$ Z; f+ ?: c- Y/ R: }& n* V
}
* k( A- \3 U; g& h7 T; E, \如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。6 e) Z' P; \ U% G2 u& p Z
7 b( ~0 t' |' g' D, i" `
错误范例:# a/ r7 T; b( I9 a7 B5 h
4 t0 V/ t; {7 Y* I0 _0 i; Tint somefunc(double a, double d=0.0001, int n, bool b, string s="passed string"), n5 G, \% L" M5 C) B3 g
{$ o/ q9 R0 F0 h1 n' a& J+ K
}4 H8 Z1 T: R5 q% v& _7 q2 b
函数调用* x8 a+ ~# f. d1 o- N# L/ }8 X
如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。
; O( _8 w. b: h8 f) Q0 N5 t" J3 a
- J1 L7 f" S5 Q1 V z: O0 C函数名称 (x1, x2,..., xn)
9 H. l- _) g$ d/ [. E" ^函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。" G& o+ Q: F" w
+ W5 s7 ~! |: u! A8 a" W" V! b$ {2 A1 i" u, l
518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念./ f7 |6 g# D8 J+ I, w. z
|