MQL4语言编程培训9:MQL4函数概念( `2 A3 Z; m; t
$ Z6 W4 @2 L: @MQL4语言编程培训9:MQL4函数概念
) P3 m6 X3 y, L- J p& u% e/ H) u, v2 z4 k* h
函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。
' H, l; ~- U, S+ K& \8 a+ L示例:
7 {$ y9 _/ O6 D' e/ B! {( j5 Y2 l5 Y, E' ?/ ?3 V
double // 返回值的类型
% i* J! x9 x. b5 }7 p2 blinfunc (double x, double a, double b) // 函数名称和参量列表
, {- p- \4 |. k, S" R J( F0 D# \8 ]( V+ Q{
) B2 v' {+ E' d // 语句块
+ R. g9 h2 T( G# B. o' A return (a + b); // 返回表达式值2 ~ W& x( y% f- v8 `
}
6 V B7 O4 ?/ m4 q2 Ereturn语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。
' w! y( @; |, Z$ A
7 C- i5 y6 T( Q" E# I7 E7 m( F示例:
3 D) w4 r: u5 z; g' f- h. |
* |, E2 x4 o( m% C. b m' Tvoid errmesg(string s): s% o$ E1 ^4 \
{
/ I- J$ m& W( W: w. t4 _5 O/ I Print("错误: "+s);* `% ]! G3 v. q, E4 x# e5 ~1 o
}
* g5 ^1 h6 W0 e" g! S0 S函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。
6 b2 s- `) N7 i1 P- B0 n( h
E- B% [$ h: E# Y示例:4 b: S8 `8 \3 L5 Z9 K
# s. B0 z; H6 U" W* I8 O
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")
% L; O2 d, v" _* b6 @5 Z# e m- o3 W {
* K* ?3 g2 V8 q. A Print("需求参量 a=",a);
3 W2 I, n+ q+ ]8 n! _ Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);& `' o" c# R( u, Y# h9 O( W. U
return (0);
; E; P. O0 E0 i3 f }
$ a) ^4 M' U1 L) B% n如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。
/ s( Y' f# t2 c
k2 ^$ a- R1 y2 O, R错误范例:
6 O3 u" B1 i5 x) {) V; O9 W! e# @
8 u" [# E7 d, Z9 m9 B/ Lint somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")1 f9 n! A/ V1 o. }7 j) c3 T
{
# K3 c" b$ W5 D( I1 h0 K/ L }
. a8 g5 L& K! t: k8 i. ^函数调用
, R8 m# g8 ]5 g& K2 ^. f1 F如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。3 h, t6 q# I+ x8 [
* O u! K1 q4 M
函数名称 (x1, x2,..., xn)! J7 Y+ J, E% \; W& u! M+ E- S- Q
函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。
, p6 @# S& i" f) k* t: w0 n/ U1 E$ P; }
9 b1 @3 Q6 n2 A4 s* Q0 X518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念.8 g, z/ t* }) S: E/ _
|