关于编码风格 - 页 4 1234567 新评论 Сергей 2009.06.28 02:04 #31 Mathemat >> : 尤拉,你的例子有一个回报,当然,这是符合逻辑的。但要注意的是,在这种情况下,所有的if都会被运行,而不像有许多返回的情况下,当函数的退出是在达到条件的字符串后立即得到的。 ForexTools,谢谢,我已经采纳了你关于格式化的想法。 数学,因为条件运算符 "if "也有 "else "这样一个噱头。 if(expression1) operator1。 else if(expression2) operator2; else if(expression3) operator3; 否则操作者4。 然后在第一个真条件之后执行运算符,就是这样。所有的如果都没有进一步运行。如果发现一个真实的条件,就会执行相应的运算符,程序在这个结构体之后继续进行(在结构体中没有进一步的搜索)。 Sceptic Philozoff 2009.06.28 05:37 #32 我不是在争论,谢尔盖。我在这里说的是朱拉的 设计。 Sergey Kravchuk 2009.06.29 21:13 #33 还有一个有趣的问题可以 "刺激 "讨论:平台限制对编写MQL程序的风格有多大影响? 例如:如果在不同的函数中进行逻辑隔离的计算,那么代码更容易编写、理解/阅读和维护。但每次调用一个函数(特别是在解释器中,如MQL)都是一个耗时的操作。单一的调用当然不是关键,但我们大多数人不得不在一个循环中写这样的东西(for int i=0; i<Bars; i++)等。在这里我们开始决定什么更重要--漂亮的代码(以函数的形式--这样以后我们就能理解我们写的东西)或执行速度(复制类似的片段--这样你的循环可以在下一个tick到来之前一直工作)。 很明显,在每种情况下--黄金分割线的决定是不同的,但....谁来解决这个问题? Sceptic Philozoff 2009.06.29 21:25 #34 我在第一页的同一个主题中发布了一个简短的研究结果。以我的计算量(它很小),我对这些功能相当满意--即使是单行长度。但这里也有其他意见。 Sergey Kravchuk 2009.06.29 21:28 #35 这不是我的意思...我的意思是,编码风格在多大程度上受到需要考虑平台(任何--不仅仅是MT)的外部约束的影响。 Sceptic Philozoff 2009.06.29 21:32 #36 它可能有影响。我曾经认为古老的特鲁博-帕斯卡尔语是理想的。在那里,可以对函数进行结构化处理,即在函数中对函数进行声明。C不允许这样做。而这正是我现在要做的事情,但基本上是在C平台上。当然,这只是一个外在的表现。 现在更精确了,谢尔盖? Vasiliy Sokolov 2009.06.29 21:54 #37 Раньше я считал идеальным древний язык Трубо Паскуаль. Там есть возможность структурирования функций, т.е. объявление функций в функциях. 这到底是怎么一回事?就我个人而言,我在学习编程语言的时候是从C语言开始的。现在我知道其中两个:C和C++。我必须说,我根本没有被吸引去学习任何其他语言。为什么我必须在函数中声明函数?就个人而言,由于我只在C和C++中长大,我不理解这种方法。 Sceptic Philozoff 2009.06.29 22:00 #38 C-4 >> 为什么要在一个函数中声明一个函数?>> 就个人而言,由于我只在C和C++中长大,我不理解这种方法。 但我现在确实明白了。如果我有一直到第六个调用顺序的函数,对我来说,把不同调用顺序的所有函数归为一堆并不总是方便。它失去了对调用结构的整体看法。而在Trubo Pasqualee中,这一切都很方便:几个主要功能进行关键处理,所有的小的子功能都隐藏在里面。 但这可能是一个习惯问题。我已经很久没有在里面写东西了--而且我并不后悔。 Sergey Kravchuk 2009.06.29 22:06 #39 C-4 >> : 为什么要在一个函数中声明一个函数?就个人而言,由于我完全是在C、C++中成长起来的,我不理解这种方法。 "霍拉旭朋友,世界上有许多事情是我们的智者从未梦想过的";) 这有一种美感--可以说是封装中的封装。但说真的,这是一个非常有用的工具,如果你明智地使用它,就像其他东西一样。 数学 我曾经认为古老的特鲁博-帕斯卡尔语言是完美的。 我正在考虑重新使用它,至少以Delphi中的DLL形式。 我已经厌倦了用MQL来做简单但必要的事情(例如,与交易员的微不足道的对话)。 Vasiliy Sokolov 2009.06.29 22:19 #40 - 什么是力量,兄弟!? - 力量在班级里,兄弟! 我认为还没有发明过比班级更好的东西。在类内声明私有函数,并声明公有函数来与之合作。它很好,很强大。继承函数和变量,想清楚层次结构。通过创建复杂的数据结构对数据进行封装。使用标准模板库中的通用算法处理数据。坦率地说,MQL4中的封装性非常差。你必须分别保存不同类型的数据,这导致了错误。通常我们要注意数组的索引(一个非常恼人的错误)。我认为这将在MQL5中被制止。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
尤拉,你的例子有一个回报,当然,这是符合逻辑的。但要注意的是,在这种情况下,所有的if都会被运行,而不像有许多返回的情况下,当函数的退出是在达到条件的字符串后立即得到的。
ForexTools,谢谢,我已经采纳了你关于格式化的想法。
数学,因为条件运算符 "if "也有 "else "这样一个噱头。
if(expression1) operator1。
else if(expression2) operator2;
else if(expression3) operator3;
否则操作者4。
然后在第一个真条件之后执行运算符,就是这样。所有的如果都没有进一步运行。如果发现一个真实的条件,就会执行相应的运算符,程序在这个结构体之后继续进行(在结构体中没有进一步的搜索)。
我不是在争论,谢尔盖。我在这里说的是朱拉的 设计。
还有一个有趣的问题可以 "刺激 "讨论:平台限制对编写MQL程序的风格有多大影响? 例如:如果在不同的函数中进行逻辑隔离的计算,那么代码更容易编写、理解/阅读和维护。但每次调用一个函数(特别是在解释器中,如MQL)都是一个耗时的操作。单一的调用当然不是关键,但我们大多数人不得不在一个循环中写这样的东西(for int i=0; i<Bars; i++)等。在这里我们开始决定什么更重要--漂亮的代码(以函数的形式--这样以后我们就能理解我们写的东西)或执行速度(复制类似的片段--这样你的循环可以在下一个tick到来之前一直工作)。
很明显,在每种情况下--黄金分割线的决定是不同的,但....谁来解决这个问题?
我在第一页的同一个主题中发布了一个简短的研究结果。以我的计算量(它很小),我对这些功能相当满意--即使是单行长度。但这里也有其他意见。
它可能有影响。我曾经认为古老的特鲁博-帕斯卡尔语是理想的。在那里,可以对函数进行结构化处理,即在函数中对函数进行声明。C不允许这样做。而这正是我现在要做的事情,但基本上是在C平台上。当然,这只是一个外在的表现。
现在更精确了,谢尔盖?
Раньше я считал идеальным древний язык Трубо Паскуаль. Там есть возможность структурирования функций, т.е. объявление функций в функциях.
这到底是怎么一回事?就我个人而言,我在学习编程语言的时候是从C语言开始的。现在我知道其中两个:C和C++。我必须说,我根本没有被吸引去学习任何其他语言。为什么我必须在函数中声明函数?就个人而言,由于我只在C和C++中长大,我不理解这种方法。
但我现在确实明白了。如果我有一直到第六个调用顺序的函数,对我来说,把不同调用顺序的所有函数归为一堆并不总是方便。它失去了对调用结构的整体看法。而在Trubo Pasqualee中,这一切都很方便:几个主要功能进行关键处理,所有的小的子功能都隐藏在里面。
但这可能是一个习惯问题。我已经很久没有在里面写东西了--而且我并不后悔。
为什么要在一个函数中声明一个函数?就个人而言,由于我完全是在C、C++中成长起来的,我不理解这种方法。
"霍拉旭朋友,世界上有许多事情是我们的智者从未梦想过的";)
这有一种美感--可以说是封装中的封装。但说真的,这是一个非常有用的工具,如果你明智地使用它,就像其他东西一样。
数学 我曾经认为古老的特鲁博-帕斯卡尔语言是完美的。
我正在考虑重新使用它,至少以Delphi中的DLL形式。 我已经厌倦了用MQL来做简单但必要的事情(例如,与交易员的微不足道的对话)。
- 什么是力量,兄弟!?
- 力量在班级里,兄弟!
我认为还没有发明过比班级更好的东西。在类内声明私有函数,并声明公有函数来与之合作。它很好,很强大。继承函数和变量,想清楚层次结构。通过创建复杂的数据结构对数据进行封装。使用标准模板库中的通用算法处理数据。坦率地说,MQL4中的封装性非常差。你必须分别保存不同类型的数据,这导致了错误。通常我们要注意数组的索引(一个非常恼人的错误)。我认为这将在MQL5中被制止。