518外汇网

标题: MQL4语言编程培训9:MQL4函数概念 [打印本页]

作者: 外汇学院    时间: 2018-1-19 22:58
标题: MQL4语言编程培训9:MQL4函数概念
MQL4语言编程培训9:MQL4函数概念/ p( Q0 u; p8 X- C6 {, u3 T
http://v.youku.com/v_show/id_XNDA3MDAzODAw.html
) l0 N) u" L$ |. _! M# N# |7 ]  ]MQL4语言编程培训9:MQL4函数概念7 Q6 S2 e1 ~2 {6 V: i4 C0 B8 [

( |0 b' }0 l) _0 \* L3 o函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。4 b5 ?6 e# [/ y* Q& y. t; S5 K" x
示例:
- n6 r9 e4 C7 z8 H# G8 J* X4 T
$ d; `, `, c# s0 o; J& idouble                       // 返回值的类型9 v( u) s- h' \* h1 f" z
linfunc (double x, double a, double b) // 函数名称和参量列表" o/ o: I  b2 |3 j/ _
{
4 C" C0 Q+ V+ T8 `4 @: F6 V                             // 语句块/ k: e: @1 G. q5 v0 e; \
   return (a + b);           // 返回表达式值
1 h- O5 j& e( k0 I* H. Q2 m% Q}; W, K" Y, B7 _- {
return语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。
% T4 O7 k/ o% S- e# l$ r2 k
' T* [+ |; }- e0 p. E1 b+ m示例:" t& a. C+ p/ {" a, [2 w5 U

5 J) Z' K! f: s' Wvoid errmesg(string s)% d( m$ x0 v0 o1 s2 p
  {; `8 k' D. k3 t
   Print("错误: "+s);
- I$ ]% \$ V5 [  }! }  M3 z, v1 X3 r) |; o- }' g
函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。- o, C9 ~" b! M! }4 ^, S' J

- i5 `  T  v& V; B! Z' U5 g' `示例:
) ?' t) p6 h5 S( I4 d+ d/ w! N( f. ^7 O# a9 H. A4 s
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")& [) \* U. g% u: S' `
  {
' M0 V4 A; b2 M5 r) ]   Print("需求参量 a=",a);9 o2 j$ ^4 ~6 t$ c8 ^& B7 o
   Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);4 K$ b9 @2 d3 p4 K
   return (0);
% D( x/ L0 L7 e  }
( W' _( [! ]+ H. u如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。5 D% U0 \# P6 h+ D; H$ Y
& d; c( \( L) c3 d1 f' A" o# I
错误范例:) s3 e  b" G; `, m
3 }7 ~1 T& A$ q
int somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")
2 L& o0 u* T9 e# D$ ?" e) i5 d  {
% C$ T  V7 M$ ?  }
% v, ~, m( g  @1 d# J" C8 \- b4 U函数调用
9 V9 L; T& h) R3 A6 g( E如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。. G+ I8 Z9 E, y$ t& L. }9 a
5 p, Z; z/ o( S$ r! X6 L
函数名称 (x1, x2,..., xn)
, C( u! b% Z! ~* v( P函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。
( n% L: I1 a- k9 `% \- ]# S) ], S8 v4 a& u0 H- k
' |2 P2 ?7 {0 X2 g4 V0 C
518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念.4 y, L# r" ]7 E" |: }, q( j

作者: 贵州论坛    时间: 2019-8-6 20:11
大家有什么好看法,赶快说说




欢迎光临 518外汇网 (https://www.518waihui.com/) Powered by Discuz! X3.5