在MT5中强制清算阵列? - 页 3 1234567 新评论 Реter Konow 2019.03.04 11:57 #21 Vladimir Karputov:未能初始化阵列完全是kodopistael的错。在你自己的环境中寻找错误。重建你的算法。没有错误。 在声明过程中自动用零进行数组初始化 的功能被简单地禁用。为什么?- 未知。正因为如此,你必须在使用前手动清除该阵列。这并不总是很方便。 Vladimir Karputov 2019.03.04 12:00 #22 Реter Konow:没有错误。 刚刚删除了在声明时用零自动初始化数组的 功能。为什么?- 未知。正因为如此,你必须在使用前手动清除该阵列。这并不总是很方便。你想要什么?以 "4 "的风格漫不经心地写作?不顾一切地查询不存在的索引?希望有一个为你初始化数组的 "人"? MQL5将强烈谴责这种业余人员,所以他们没有任何懈怠。从一开始就学会正确的写法:如果你已经创建了一个数组,你必须绕过所有的索引,并填充它们。如果你不想一下子填满它们--随着数组大小的初步增加,一步一步地填满它们。 总的来说,做一个正常的算法,不要把自己的问题转嫁给别人。 Реter Konow 2019.03.04 12:13 #23 Vladimir Karputov:你想做什么?以 "4 "的风格漫不经心地写作?不顾一切地查询不存在的索引?依靠为你初始化数组的 "叔叔"? MQL5将强烈谴责这种业余人员,所以他们没有任何懈怠。从一开始就学会正确的写法:如果你已经创建了一个数组,你必须绕过所有的索引,并填充它们。如果你不想一下子填满它们--随着数组大小的初步增加,一步一步地填满它们。 总的来说,做一个正常的算法,不要把自己的问题转嫁给别人。预先填充一个数组几乎不可能导致任何错误。它很方便。 在MT5中,你声明一个数组,清理垃圾,然后使用它。 在MT4中,你声明一个数组并使用它。 这就是区别。 为什么我们要把清除数组的任务转移到用户身上? 这是否会提高他们的专业水平?也许。但它肯定不会增加任何积极的情绪))。因此,对我的消极态度感到抱歉。我花了几天时间试图找出问题所在。这让我很不爽)。 Aliaksandr Hryshyn 2019.03.04 12:17 #24 由于速度问题,删除了自动清洁功能。 Vasiliy Sokolov 2019.03.04 12:18 #25 Реter Konow:没有错误。 刚刚删除了在声明时用零自动初始化数组的 功能。为什么?- 未知。正因为如此,你必须在使用前手动清除该阵列。这并不总是很方便。彼得,初始化被删除了,因为这个程序需要时间,在C++和MQL5中,不习惯为你不使用的东西付费。数组的初始化并不总是需要的,例如,如果你立即用所需的值填充数组,就不需要了。 总之,从你的问题来看,我不明白困难在哪里。你总是知道你的阵列的大小。如果你重新分割一个数组,你总是知道你要向它添加多少个元素。所以很容易在ArrayResize之后立即调用ArrayInitialize函数。 你可能会问,当人们不得不额外考虑这么多事情时,他们如何使用MQL5呢?答案是:那些在良好水平上使用MQL5的人使用标准库,所以他们甚至不考虑所有这些东西,他们不初始化数组或重新标记它,他们只是添加新的值。但是由于你是一个dartan,不认识这些,你只有一个选择:使用ArrayInitialize对你的数组进行低级别的、艰苦的管理。 Реter Konow 2019.03.04 12:29 #26 Vasiliy Sokolov:1.彼得,初始化被删除了,因为这个过程需要时间,而在C++和MQL5中,为你不使用的东西付费是不习惯的。数组初始化并不总是需要的,例如,如果你立即用所需的值填充数组,就不需要了。而从你的问题来看,我仍然不明白困难在哪里。你总是知道你的阵列的大小。如果你重新分割一个数组,你总是知道你要添加多少个额外的项目到其中。所以在ArrayResize之后调用ArrayInitialize函数很容易。你可能会问,有这么多额外的事情需要考虑,人们如何使用MQL5?答案是:那些在良好水平上使用MQL5的人使用标准库,所以他们甚至不考虑这些东西,他们不初始化一个数组或其重新分区,他们只是添加新的值。但是,由于你是一个dartan,不会承认任何类似的事情,你只有一个选择:使用ArrayInitialize,对你的数组进行低级别的、艰苦的管理。瓦西里,一点一点说。 1.逻辑告诉我们,数组清理 程序在编译阶段只被编译器执行一次。如果它被删除了,这意味着我们想提高编译器的性能,损害了程序员的便利,但也许是为了提高他的水平。 2.内核的大小取决于网络代码。项目越多,内核阵列就越大。因此,内核是动态的。它是分阶段建造的。如果它的单元格中存在垃圾,那么在不同阶段的函数中,一个单元格对另一个单元格的引用将导致程序崩溃。 在MT4中没有这样的问题,因为未初始化的单元格是零,不是随机值。简而言之,我的技术最初应该在一个干净的阵列中工作。 3.我并不反对强制自定义阵列清除,只是,就像我说的,得到了一点唠叨的感觉。有几天,我无法理解为什么一切都崩溃了。以为是我的错,结果是--他们拿走了我的一个便利))。 不要紧,我们会习惯的)。 顺便说一下,我应该说我的代码是绝对跨平台的。我不需要改变任何东西,除了这个清理工作!"。 Dmitry Fedoseev 2019.03.04 12:35 #27 Реter Konow:没有错误。 刚刚删除了在声明时用零自动初始化数组的 功能。为什么?- 未知。 ...这样,我们就可以写出快速的程序。初始化远不总是需要的,更多的时候,数组马上就被填充了自己的数据。 Реter Konow 2019.03.04 12:37 #28 Dmitry Fedoseev:为了能够编写快速的程序。初始化并不总是需要的,数组通常会立即填充自己的数据。好的。我明白了。 Vasiliy Sokolov 2019.03.04 12:45 #29 Реter Konow:...如果单元格中存在垃圾,那么在不同结构阶段的函数中对一个单元格的引用会导致程序崩溃。皮奥特,如果你的内核里有垃圾,你就得为它负责。MQL5与MQL4不同,并不试图了解用户的需求,这一点是正确的。 Vasiliy Sokolov 2019.03.04 12:56 #30 P.S.我认为你会更幸运,彼得,如果你最后能在某个JavaScript论坛上找到。那里有很多这样的美味。你会达到很高的高度! 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
未能初始化阵列完全是kodopistael的错。在你自己的环境中寻找错误。重建你的算法。
没有错误。
在声明过程中自动用零进行数组初始化 的功能被简单地禁用。为什么?- 未知。正因为如此,你必须在使用前手动清除该阵列。这并不总是很方便。
没有错误。
刚刚删除了在声明时用零自动初始化数组的 功能。为什么?- 未知。正因为如此,你必须在使用前手动清除该阵列。这并不总是很方便。
你想要什么?以 "4 "的风格漫不经心地写作?不顾一切地查询不存在的索引?希望有一个为你初始化数组的 "人"?
MQL5将强烈谴责这种业余人员,所以他们没有任何懈怠。从一开始就学会正确的写法:如果你已经创建了一个数组,你必须绕过所有的索引,并填充它们。如果你不想一下子填满它们--随着数组大小的初步增加,一步一步地填满它们。
总的来说,做一个正常的算法,不要把自己的问题转嫁给别人。
你想做什么?以 "4 "的风格漫不经心地写作?不顾一切地查询不存在的索引?依靠为你初始化数组的 "叔叔"?
MQL5将强烈谴责这种业余人员,所以他们没有任何懈怠。从一开始就学会正确的写法:如果你已经创建了一个数组,你必须绕过所有的索引,并填充它们。如果你不想一下子填满它们--随着数组大小的初步增加,一步一步地填满它们。
总的来说,做一个正常的算法,不要把自己的问题转嫁给别人。
预先填充一个数组几乎不可能导致任何错误。它很方便。
在MT5中,你声明一个数组,清理垃圾,然后使用它。
在MT4中,你声明一个数组并使用它。
这就是区别。
为什么我们要把清除数组的任务转移到用户身上?
这是否会提高他们的专业水平?也许。但它肯定不会增加任何积极的情绪))。因此,对我的消极态度感到抱歉。我花了几天时间试图找出问题所在。这让我很不爽)。
没有错误。
刚刚删除了在声明时用零自动初始化数组的 功能。为什么?- 未知。正因为如此,你必须在使用前手动清除该阵列。这并不总是很方便。
彼得,初始化被删除了,因为这个程序需要时间,在C++和MQL5中,不习惯为你不使用的东西付费。数组的初始化并不总是需要的,例如,如果你立即用所需的值填充数组,就不需要了。
总之,从你的问题来看,我不明白困难在哪里。你总是知道你的阵列的大小。如果你重新分割一个数组,你总是知道你要向它添加多少个元素。所以很容易在ArrayResize之后立即调用ArrayInitialize函数。
你可能会问,当人们不得不额外考虑这么多事情时,他们如何使用MQL5呢?答案是:那些在良好水平上使用MQL5的人使用标准库,所以他们甚至不考虑所有这些东西,他们不初始化数组或重新标记它,他们只是添加新的值。但是由于你是一个dartan,不认识这些,你只有一个选择:使用ArrayInitialize对你的数组进行低级别的、艰苦的管理。
1.彼得,初始化被删除了,因为这个过程需要时间,而在C++和MQL5中,为你不使用的东西付费是不习惯的。数组初始化并不总是需要的,例如,如果你立即用所需的值填充数组,就不需要了。
而从你的问题来看,我仍然不明白困难在哪里。你总是知道你的阵列的大小。如果你重新分割一个数组,你总是知道你要添加多少个额外的项目到其中。所以在ArrayResize之后调用ArrayInitialize函数很容易。
你可能会问,有这么多额外的事情需要考虑,人们如何使用MQL5?答案是:那些在良好水平上使用MQL5的人使用标准库,所以他们甚至不考虑这些东西,他们不初始化一个数组或其重新分区,他们只是添加新的值。但是,由于你是一个dartan,不会承认任何类似的事情,你只有一个选择:使用ArrayInitialize,对你的数组进行低级别的、艰苦的管理。
瓦西里,一点一点说。
1.逻辑告诉我们,数组清理 程序在编译阶段只被编译器执行一次。如果它被删除了,这意味着我们想提高编译器的性能,损害了程序员的便利,但也许是为了提高他的水平。
2.内核的大小取决于网络代码。项目越多,内核阵列就越大。因此,内核是动态的。它是分阶段建造的。如果它的单元格中存在垃圾,那么在不同阶段的函数中,一个单元格对另一个单元格的引用将导致程序崩溃。
在MT4中没有这样的问题,因为未初始化的单元格是零,不是随机值。简而言之,我的技术最初应该在一个干净的阵列中工作。
3.我并不反对强制自定义阵列清除,只是,就像我说的,得到了一点唠叨的感觉。有几天,我无法理解为什么一切都崩溃了。以为是我的错,结果是--他们拿走了我的一个便利))。
不要紧,我们会习惯的)。
顺便说一下,我应该说我的代码是绝对跨平台的。我不需要改变任何东西,除了这个清理工作!"。
没有错误。
刚刚删除了在声明时用零自动初始化数组的 功能。为什么?- 未知。 ...
这样,我们就可以写出快速的程序。初始化远不总是需要的,更多的时候,数组马上就被填充了自己的数据。
为了能够编写快速的程序。初始化并不总是需要的,数组通常会立即填充自己的数据。
好的。我明白了。
...如果单元格中存在垃圾,那么在不同结构阶段的函数中对一个单元格的引用会导致程序崩溃。
皮奥特,如果你的内核里有垃圾,你就得为它负责。MQL5与MQL4不同,并不试图了解用户的需求,这一点是正确的。