MQL4语言编程培训9:MQL4函数概念
1 p5 S& m. s$ E' U7 O5 J* m% w2 o- V1 `1 L7 R1 O8 I w
MQL4语言编程培训9:MQL4函数概念
/ \' u) `% |+ q- Q3 D- Q5 V( X# A0 x) J% ]: o) \
函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。 V; {) n" H* k6 ^1 i
示例:5 H) B$ b2 _6 u' b% p5 \
. c& l9 G) }- r6 V2 G( T. Y# p6 g$ S( {double // 返回值的类型
1 M' l! g; j% u/ |; w( }8 W4 g( ?! Q$ Nlinfunc (double x, double a, double b) // 函数名称和参量列表
. t, S x% [0 h$ F{4 H( G1 n @' b, @
// 语句块
! C. q+ ?3 d$ n r+ D" C return (a + b); // 返回表达式值
& q! P; V% B( f1 D0 { v' N}
, @; N* V! e# r q. I8 Kreturn语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。+ G! [0 |' K8 l5 j) n6 b; W0 M
4 L0 l2 W2 Z8 m6 H2 C6 c# g% f- z7 F
示例:
. J! Y1 g/ ^! u5 ]' l4 \' g3 b) _0 {- i L& P* q1 x. Y
void errmesg(string s)2 h8 j. F* p' t% g% C& k5 o5 o3 d
{
2 b- f) G. H9 |5 n" S Print("错误: "+s);
; J, k( I6 X: p# ~$ U }
% O) S" b5 Z* K7 j& Q/ A# l; I% u3 B, p函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。
6 T6 f! T: M1 |0 K
# P: H# R! m8 d: f示例:
& A, G2 g$ I3 z
& L5 y: `: M: v( bint somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")
% T8 m/ b) K: e1 {/ f {
; C5 d S. P7 V5 l, v- H" V Print("需求参量 a=",a);; _6 y: X# M6 ~! W, J! ~: T
Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);
: [! R) i' L$ q0 Y n/ }7 _ return (0);, I( U( o, q9 p6 @, i& D. E
}' n0 f2 v7 E* p
如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。6 m F& x0 I: P% f' g
, U, z6 u" v9 s( S9 t
错误范例:
% C7 w4 _7 W7 t' Q! Y4 c6 H4 o) j
; L& j. }/ H. d G+ T/ sint somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")( Y9 u$ ^. K0 A! l; p0 \$ k
{
1 l$ V: I7 G, i/ O5 A# w }
( K* z+ c/ ~. V3 w- f函数调用
4 u1 C( G- x0 z' w' ^如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。( l. m! X8 s0 a0 n$ u
& U+ K1 W7 F! c% ?
函数名称 (x1, x2,..., xn)
# G+ F- G! A; M/ [3 K$ S" l函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。
5 }( h' n: U# ]. k6 Y% l: L
( s! T1 M8 ?) o" t" t3 ~
" y- Q) a$ B" j2 t518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念.
' W, C, O8 ~9 f |