MQL4语言编程培训9:MQL4函数概念
" j- L# M7 H' C1 z! m
b9 k8 P P! l _* y. M( |MQL4语言编程培训9:MQL4函数概念
. d( z* y8 P1 j" t; i9 B8 k
5 o7 G9 [* V$ j函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。$ E$ M0 E+ v# X# x/ i; \
示例:3 R6 V6 O: c2 G& O4 J' Q9 m( W6 E2 R
' `7 t: ?% C5 Z& o6 c# o7 W& |9 ldouble // 返回值的类型$ d4 g9 \! r3 m
linfunc (double x, double a, double b) // 函数名称和参量列表
5 A* y8 x% E5 b+ p# S- a/ I{
0 F' T( i }* J A# U // 语句块
# b& s5 L. o* c7 z return (a + b); // 返回表达式值
8 Q3 B" E: N+ K# X0 Q$ E}
" R5 M% _2 ]' A" p2 h1 J, P1 M' h+ s' wreturn语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。
7 ^" N# u9 Q( ~/ P5 }8 [& ~( T8 {( L s
示例:% }' _4 j4 T4 h! I
0 q8 g8 r u% Q3 {: O" O% ]void errmesg(string s)
J9 Q+ w& e/ ^( B( v! R( U. ?5 \ {
: Y: y# Q! U7 [/ Y' { Print("错误: "+s);
3 S. F* W9 {5 w9 J& q; o }7 Y" o$ u, Y4 a3 ^4 b! s7 D7 s
函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。
/ k" b4 R y/ h* N+ z: Z ]* w6 B- X, Z8 a
示例:
0 [* [3 J& ]' q2 l
1 x) Y$ `/ T L, e: ?1 h* U, z% |int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")
( J: D w1 u9 d U {' e: J: a# R& U- S _9 O3 q
Print("需求参量 a=",a);; M4 ?# M. P4 i6 e9 a: l
Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);
* Z) b" L3 h4 c8 [) w9 Q; _0 R return (0);
! Z0 i) ?7 g4 j2 n }
. v/ @+ W" G2 M6 V1 _8 e如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。+ Q; z2 {" U, a$ z5 Z% v) P; b+ I
i% z3 ~; G+ [2 d
错误范例: C L) m2 u5 B+ C
4 W, U, I7 i! V; j' y$ R8 Q
int somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")7 c3 x7 ~. |5 M* W7 u" V# w0 D. e
{
J$ b+ {0 V, R9 a3 o2 G }6 \3 _8 d! W+ Z f2 f, ~
函数调用
* ], n6 w b; |! N$ j如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。1 w% H0 }2 t' d5 t
3 W# t/ {) g) d9 ] c& g9 X
函数名称 (x1, x2,..., xn)
0 N8 f9 P& P0 i! _; x! V+ J( ]函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。
* `' i4 Z+ Z) u, z9 @( g1 I0 @) `( [- C7 |* ~) d
, }3 }, ^! a7 o" J518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念.' K( P4 v: W- g/ t" j3 J7 \
|