返回2个结果的函数? - 页 3 1234 新评论 cameo 2010.06.27 07:11 #21 gordon: 这里有一个简化的解释->https://www.mql5.com/en/forum/117210。 在MQL4中,数组总是通过引用来传递。 是的,谢谢。但就像我问的那样,这是否意味着在其他语言上不是这样的?如果这是使用MQ/MT4或其他语言结构带来的唯一方法,那么我想他们就不必麻烦地说明了。 我想我问的是你在那个帖子中所说的 "技术细节"。只是出于好奇心,而不是必要性。 至于语法,用于交易策略编程的MQL5语言与C++编程语言非常相似,除了一些特点。 没有地址运算。 没有goto运算符。 不能声明一个匿名的枚举。 类和结构的构造函数不能有参数。 没有多重继承。 像这样,我可以暗示,在C++上,相反的情况将是真实的...... 还是谢谢你,Gordon。 gordon 2010.06.27 11:17 #22 Matutin: 很抱歉,这不是一个 "技术性 "的回答:) 你能说说为什么通过引用传递变量而不是全局变量更好吗? 有很多原因,我不想重复,我想让你看看这里 ->https://en.wikipedia.org/wiki/Global_variable 和这里 ->http://www.c2.com/cgi/wiki?GlobalVariablesAreBad(你可以通过谷歌了解更多...这是一个被广泛接受的概念,网络上有很多信息)。 gordon 2010.06.27 11:22 #23 cameofx: [......]这是否意味着在其他语言上它不是? [...] 这并不意味着什么,但具体来说,在C和C++中,数组也是通过引用来传递的(技术上来说,数组的第一个元素的指针被传递,该指针是通过值传递的)。 [删除] 2010.06.27 11:37 #24 gordon: 很多原因我不想重复,我想让你看看这里 ->https://en.wikipedia.org/wiki/Global_variable 和这里 ->https://www.mql5.com/go?link=http://www.c2.com/cgi/wiki?GlobalVariablesAreBad(你可以用谷歌搜索更多...这是一个被广泛接受的概念,网络上有很多信息)。 非常有趣不幸的是,EA需要参数,而且有时需要很多,所以我们无法避免它们,必须注意https://www.mql5.com/go?link=http://www.c2.com/cgi/wiki?GlobalVariablesAreBad 中提到的所有原因。 我正在使用GlobalVariable的命名规则:更容易管理和避免一些错误。 谢谢你,Gordon。 gordon 2010.06.27 13:57 #25 Matutin: 非常有趣!不幸的是,EA需要参数,而且有时需要很多,所以我们不能避免它们[...] 。 外延变量的确是不可避免的。虽然它们在范围上是全局的,但它们与全局变量(不要与GV 混淆)不 一样;具体来说--不建议通过代码改变它们的值,因此无论如何它们不应该被用来在函数之间传递信息(见这里->https://www.mql5.com/en/forum/123535)。 我在使用GlobalVariable的命名规则:更容易管理和避免一些错误。 这个讨论是关于定义在全局范围内的变量(在特殊函数start(), init(), deinit()之外声明),而不是关于GV的...不要把这两者混为一谈。 [删除] 2010.06.27 18:04 #26 我只是好奇:是否有任何编程语言有返回多个结果的函数? Ian Venner 2010.06.28 00:19 #27 也许你可以欺骗一个函数,让它返回两个值,把它们合并起来,然后在调用函数中再把它们分开。 像这样 a = 10; b = 20; a = a*1000 c = a+b // 10020 return(c)。 然后在调用函数中 b = c%1000 // 20 a = c-b/1000 // 10 gordon 2010.06.28 00:33 #28 SDC: 也许你可以欺骗一个函数,让它返回两个值,把它们合并起来,然后在调用函数中再把它们分开。 像这样 [...] 也许不是。 Ian Venner 2010.06.28 01:18 #29 为什么不呢? gordon 2010.06.28 05:57 #30 SDC: 为什么不呢? 为什么要解决一个不存在的问题?为什么要重新发明轮子?为什么要编造不明确的代码,只在有限的情况下工作? 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这里有一个简化的解释->https://www.mql5.com/en/forum/117210。 在MQL4中,数组总是通过引用来传递。
是的,谢谢。但就像我问的那样,这是否意味着在其他语言上不是这样的?如果这是使用MQ/MT4或其他语言结构带来的唯一方法,那么我想他们就不必麻烦地说明了。
我想我问的是你在那个帖子中所说的 "技术细节"。只是出于好奇心,而不是必要性。
至于语法,用于交易策略编程的MQL5语言与C++编程语言非常相似,除了一些特点。
像这样,我可以暗示,在C++上,相反的情况将是真实的...... 还是谢谢你,Gordon。
很抱歉,这不是一个 "技术性 "的回答:) 你能说说为什么通过引用传递变量而不是全局变量更好吗?
有很多原因,我不想重复,我想让你看看这里 ->https://en.wikipedia.org/wiki/Global_variable 和这里 ->http://www.c2.com/cgi/wiki?GlobalVariablesAreBad(你可以通过谷歌了解更多...这是一个被广泛接受的概念,网络上有很多信息)。
[......]这是否意味着在其他语言上它不是? [...]
很多原因我不想重复,我想让你看看这里 ->https://en.wikipedia.org/wiki/Global_variable 和这里 ->https://www.mql5.com/go?link=http://www.c2.com/cgi/wiki?GlobalVariablesAreBad(你可以用谷歌搜索更多...这是一个被广泛接受的概念,网络上有很多信息)。
非常有趣不幸的是,EA需要参数,而且有时需要很多,所以我们无法避免它们,必须注意https://www.mql5.com/go?link=http://www.c2.com/cgi/wiki?GlobalVariablesAreBad 中提到的所有原因。
我正在使用GlobalVariable的命名规则:更容易管理和避免一些错误。
谢谢你,Gordon。
非常有趣!不幸的是,EA需要参数,而且有时需要很多,所以我们不能避免它们[...] 。
外延变量的确是不可避免的。虽然它们在范围上是全局的,但它们与全局变量(不要与GV 混淆)不 一样;具体来说--不建议通过代码改变它们的值,因此无论如何它们不应该被用来在函数之间传递信息(见这里->https://www.mql5.com/en/forum/123535)。
我在使用GlobalVariable的命名规则:更容易管理和避免一些错误。
我只是好奇:是否有任何编程语言有返回多个结果的函数?
也许你可以欺骗一个函数,让它返回两个值,把它们合并起来,然后在调用函数中再把它们分开。
像这样
a = 10;
b = 20;
a = a*1000
c = a+b // 10020
return(c)。
然后在调用函数中
b = c%1000 // 20
a = c-b/1000 // 10
也许你可以欺骗一个函数,让它返回两个值,把它们合并起来,然后在调用函数中再把它们分开。
像这样
[...]为什么不呢?
为什么不呢?