公众号

扫码关注公众号

客服微信号

咨询客服微信号

返回顶部
热门分类
  • 指标
  • EA
  • 模板
  • 外汇
  • 黄金
  • 学院
所属组:管理员
用户等级:
注册时间:2017/04/25
手机:未填写电话号码
邮箱:16479791179@qq.com
简介:这个人很懒,什么也没有留下
热门排行榜
  • 本周热榜
  • 本月热榜

MQL4语言编程培训9:MQL4函数概念

[复制链接]
外汇学院 显示全部楼层 发表于 2018-1-19 22:58:51 |阅读模式 打印 上一主题 下一主题
MQL4语言编程培训9:MQL4函数概念
/ H4 S( G4 h$ T9 x; w; R: [  a4 X; p/ M1 |; O% J/ h+ _3 R) M
MQL4语言编程培训9:MQL4函数概念$ K( I' X6 J: M3 A6 N! C8 T6 q) P

" R7 l* G' a+ l: k( }& x, g% ~. \函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。/ Z, |, C- R3 V8 n0 g' a. U1 L
示例:% G5 I  W* e  z9 A% E- F
2 O% @0 r3 f  m" `* `$ O9 E8 b
double                       // 返回值的类型. w/ Y; Q5 y( p: J4 r) f
linfunc (double x, double a, double b) // 函数名称和参量列表
! O) w- A7 Z1 j{7 I! t/ o  `+ B& P% f6 `
                             // 语句块
6 c/ z2 R4 {* W) o9 e3 i% a   return (a + b);           // 返回表达式值6 W1 J' S+ p8 D& }
}
9 Q9 \8 b) T' E2 B$ n1 Oreturn语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。9 J: M. I7 c' @1 q% u* o

/ G  V- {+ u; g6 n1 _2 S示例:
8 I4 u/ s  t/ p+ Z: _
8 p4 _8 `) L5 }" S+ ?0 g2 v* g7 `void errmesg(string s)/ a! r7 m/ s) j5 \
  {, n- D% M6 t# \7 o+ h3 v
   Print("错误: "+s);
8 Q3 v$ V+ Q2 m! z% E3 m8 }+ t  }
" Z, r7 V1 K& i0 v3 ~: V$ Y! N函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。" k" z. S8 \! l
; j9 |: o5 A4 C2 {7 v" o: }6 V2 r
示例:! _1 f1 {) V, ?
/ a4 j# R* F/ ^9 P' d0 A4 X0 F
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string"). E- {7 P  }: I; h. w1 J# q
  {
( B# ]! E+ r8 N- t   Print("需求参量 a=",a);
" G  M# V; [/ V9 B4 u+ z  U   Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);
, A. [, w% a7 X4 K! B   return (0);
& O7 ?( ^: R* C7 w1 `# l  }$ ^* Z* w& }. I" x
如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。
8 d' U: {) E# _( c* u) Z2 a& M
. O- [) r8 H6 i, l0 g7 t1 {# a错误范例:8 M% y5 F& Z4 Q: Q' I2 @& e
/ t" H. c. p2 N0 a+ f7 n
int somefunc(double a, double d=0.0001, int n, bool b, string s="passed string")
0 o8 ^2 a# j- O3 {. U4 S  {
0 O, Q7 C; \) L1 }  }' N) U2 o( I! s" }
函数调用
4 J7 Y1 X' J' E& v- W$ |3 V+ z0 I$ H) q如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。
+ m% v: C( [% R- y9 G( w' }+ z7 i) a6 C
函数名称 (x1, x2,..., xn)- N, P$ U8 a8 q, J5 w( S/ m
函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。
2 v, d! u3 x, t& k5 _
  W0 _0 t& _- n1 I: A* S2 D5 b0 ^7 ~6 z: w
518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户如何炒外汇,外汇培训,外汇学习,提供外汇交易教程外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念.
! L6 ^" L) a' h  H, G
518财经网(www.518waihui.com)立志成为全球最大的中文专业外汇论坛。为用户提供最快最全面的资讯服务,提供稳定实用的外汇交易软件系统及完善的培训教学,帮助投资者实现信息对称,让更多的投资者了解和参与外汇黄金市场。立志成为外汇论坛中的黑马网站。商务合作QQ:1967038611

★★★ 或者升级到“VIP等级”:可任意发帖+无限制金币+所有资源无限制下载。   联系管理员(微信:15000043492 )或者加QQ:1967038611 升等级!★★★
回复

使用道具 举报

精彩评论1

贵州论坛 显示全部楼层 发表于 2019-8-6 20:11:52
大家有什么好看法,赶快说说
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则