错误、漏洞、问题 - 页 1332 1...132513261327132813291330133113321333133413351336133713381339...3184 新评论 [删除] 2015.07.24 11:13 #13311 Alexey Navoykov: 你的建议在实践中是没有意义的。 没有人故意 给出相同的名字。 本地函数的代码有自己独立的生活,而外部程序有自己的生活。 而且外部变量的名字可以随着时间的推移而改变,新的外部变量也可以被添加。如果在那之后,数百个函数中突然有一个有相同名字的局部变量,你认为我们应该给全局变量 重新命名? 你不应该为开发者的错误寻找借口。我不是在为开发者的错误寻找借口,但这个错误很容易规避,在一个项目中工作时不要使用负责输入参数的相同变量名。只要改变输入参数中的名称就可以了,我怀疑你的输入参数中有几百个变量,需要编辑所有的代码:)代码的主要部分通常写在软件的入口处,它没有那么大,一切都由函数(方法)调用 完成。而对于函数(方法)来说,在函数的输入参数中传递变量的名称是没有区别的。当然,如果你写的代码中的函数使用了全局变量,那么当然,你将不得不改变很多东西,但这种代码的编写完全没有远见,它真的很难现代化。虽然如果你用消费者的观点看开发商(MetaQuotes),当然,你想一次得到很多东西 :) 我想在一个跨平台的终端工作,但对这个要求的答案将是一个--要么使用你所拥有的,要么通过它 :) Alexey Navoykov 2015.07.24 12:38 #13312 Konstantin Karpov:只要改变输入参数中的名称...你有一种轻描淡写的看法。就这样改吧......然后会有一些其他的函数加入到本地变量名 匹配的代码中,你必须再改一次,对吗? 一个外部变量名不仅仅是一串字母,它有特定的含义。有时你必须努力思考,为它找到一个简明扼要的名字,你说--改变它。 而且,如果改变名字,这个参数的所有预设设置,以及测试器和优化器的设置都将丢失。假设你从外面的某个地方插入了一些函数,也许它甚至不是你写的,所以那里的局部变量 名绝对可以是任何。 [删除] 2015.07.24 13:29 #13313 Alexey Navoykov:你有一种轻描淡写的看法。然后在代码中添加了一些其他的函数,其中的局部变量 有相同的名字,你必须再次改变它,对吗? 外部变量的名字不只是一堆字母,它有特定的含义。有时候,你必须努力思考,为它找到一个简洁明了的名字,你说的是--改变它。 而且,如果改变名字,这个参数的所有预设设置,以及测试器和优化器的设置都将丢失。假设你从外面的某个地方插入了一些函数,也许它甚至不是你写的,所以那里的局部变量 的名字绝对可以是任何的。按你的想法去做,但看起来你没有写过任何大项目。我看我的函数定义是没有意义的,因为我在全局和局部变量名的声明风格上有明显的区别。因此,我没有遇到诸如全局和局部变量名称重合的问题。最主要的是,函数在没有碰撞的情况下完成其逻辑。在你的案例中,有一个很大的问题,如果你把全局变量的名字 和局部变量的名字重合在一起,就会出现意外,你已经开始清理了。例如,在本地变量名称中多加一个_,例如_iCount。在这种情况下,你永远不会有变量名称的问题,因为你将实现你第二次试图向我解释的东西--变量生活在本地范围内,在那里它们被创建。而在这种情况下,没有全局变量就不会在名称上引入歧义。在这一点上,让我们结束我们的讨论。 Maxim Khrolenko 2015.07.24 17:21 #13314 回到我之前的帖子。MT4/845, Windows7/64位, 脚本。#property strict double d1 = 2.009745110811111111111111111; double d2 = 3.654; double d3; //--- void OnStart() { d3=d1/d2; Print("AA: d3 = ",d3); Print("BB: d3 = ",DoubleToString(d3)); Print("CC: d3 = ",DoubleToString(d3,8)); Print("DD: d3 = ",DoubleToString(d3,9)); Print("EE: d3 = ",DoubleToString(d3,10)); }结果。管理,在DoubleToString 中加入该函数将浮点数 四舍五入到指定精度。 TheXpert 2015.07.24 19:04 #13315 不要用同样的方式命名局部变量和输入变量,这是一个好主意 Artyom Trishkin 2015.07.24 19:32 #13316 Комбинатор:不要用同样的方式命名局部变量和输入变量,这是一个好主意 从好的方面来说,是的,但有时当你修复别人的代码,将你自己的库连接到它,并...咣当... A100 2015.07.25 14:30 #13317 试着在附件中的ME中延续这一行,不要有空格 附加的文件: comment.mq5 1 kb Yousufkhodja Sultonov 2015.07.27 06:37 #13318 在讨论一个问题时,是否可以链接到市场上的一个产品?或者这是否会被认为是广告而被禁止? Vladimir Karputov 2015.07.27 07:06 #13319 Yousufkhodja Sultonov: 在讨论一个问题时,是否可以链接到市场上的一个产品?或者这是否会被认为是广告而被禁止? 每个产品都有两个标签:讨论(为那些刚刚考虑购买的人)和评论(为已经购买的人)。这是对产品进行讨论的地方。 A100 2015.07.28 18:19 #13320 运算符后有问题的编译结果?:int f() { int array[]; return ( false ? array : array ); } void OnStart() { Print( f() ); } // 0 error(s), 0 warning(s) 结果:65618(怎么会这样?),应该有一个编译时错误 1...132513261327132813291330133113321333133413351336133713381339...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你的建议在实践中是没有意义的。 没有人故意 给出相同的名字。 本地函数的代码有自己独立的生活,而外部程序有自己的生活。 而且外部变量的名字可以随着时间的推移而改变,新的外部变量也可以被添加。如果在那之后,数百个函数中突然有一个有相同名字的局部变量,你认为我们应该给全局变量 重新命名? 你不应该为开发者的错误寻找借口。
我不是在为开发者的错误寻找借口,但这个错误很容易规避,在一个项目中工作时不要使用负责输入参数的相同变量名。只要改变输入参数中的名称就可以了,我怀疑你的输入参数中有几百个变量,需要编辑所有的代码:)代码的主要部分通常写在软件的入口处,它没有那么大,一切都由函数(方法)调用 完成。而对于函数(方法)来说,在函数的输入参数中传递变量的名称是没有区别的。
当然,如果你写的代码中的函数使用了全局变量,那么当然,你将不得不改变很多东西,但这种代码的编写完全没有远见,它真的很难现代化。
虽然如果你用消费者的观点看开发商(MetaQuotes),当然,你想一次得到很多东西 :) 我想在一个跨平台的终端工作,但对这个要求的答案将是一个--要么使用你所拥有的,要么通过它 :)
只要改变输入参数中的名称...
你有一种轻描淡写的看法。就这样改吧......然后会有一些其他的函数加入到本地变量名 匹配的代码中,你必须再改一次,对吗? 一个外部变量名不仅仅是一串字母,它有特定的含义。有时你必须努力思考,为它找到一个简明扼要的名字,你说--改变它。 而且,如果改变名字,这个参数的所有预设设置,以及测试器和优化器的设置都将丢失。
假设你从外面的某个地方插入了一些函数,也许它甚至不是你写的,所以那里的局部变量 名绝对可以是任何。
你有一种轻描淡写的看法。然后在代码中添加了一些其他的函数,其中的局部变量 有相同的名字,你必须再次改变它,对吗? 外部变量的名字不只是一堆字母,它有特定的含义。有时候,你必须努力思考,为它找到一个简洁明了的名字,你说的是--改变它。 而且,如果改变名字,这个参数的所有预设设置,以及测试器和优化器的设置都将丢失。
假设你从外面的某个地方插入了一些函数,也许它甚至不是你写的,所以那里的局部变量 的名字绝对可以是任何的。
按你的想法去做,但看起来你没有写过任何大项目。
我看我的函数定义是没有意义的,因为我在全局和局部变量名的声明风格上有明显的区别。因此,我没有遇到诸如全局和局部变量名称重合的问题。最主要的是,函数在没有碰撞的情况下完成其逻辑。在你的案例中,有一个很大的问题,如果你把全局变量的名字 和局部变量的名字重合在一起,就会出现意外,你已经开始清理了。
例如,在本地变量名称中多加一个_,例如_iCount。在这种情况下,你永远不会有变量名称的问题,因为你将实现你第二次试图向我解释的东西--变量生活在本地范围内,在那里它们被创建。而在这种情况下,没有全局变量就不会在名称上引入歧义。在这一点上,让我们结束我们的讨论。
回到我之前的帖子。MT4/845, Windows7/64位, 脚本。
结果。
管理,在DoubleToString 中加入该函数将浮点数 四舍五入到指定精度。
不要用同样的方式命名局部变量和输入变量,这是一个好主意
不要用同样的方式命名局部变量和输入变量,这是一个好主意
试着在附件中的ME中延续这一行,不要有空格
在讨论一个问题时,是否可以链接到市场上的一个产品?或者这是否会被认为是广告而被禁止?
运算符后有问题的编译结果?:
结果:65618(怎么会这样?),应该有一个编译时错误