一个新来的人问道! - 页 26 1...1920212223242526 新评论 Dmitry Fedoseev 2016.01.04 22:20 #251 Alexander Bereznyak:这些是你的话,没有警告,但真的有你生活在什么世界里,你抽什么烟,分享一下 所以,你这么大胆地为我宣称我的代码,你看不到它?你把蘑菇弄错了吗? Alexander Bereznyak 2016.01.04 22:22 #252 Dmitry Fedoseev: 所以,你如此大胆地为我断言我的代码,而你并没有看到?你是不是搞错了蘑菇?我知道了,不是傻瓜,你有一个没有警告的特殊编译器,特别是个人从MQPS:我也想要一个,把它给我。 --- 2016.01.05 08:29 #253 Михаил:你给的代码根本不正确!你的代码是什么?它应该是这样的。ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));错了,因为这样就有了一个比较。if(type==(long)POSITION_TYPE_BUY不,不是的。这与它没有关系。编码机只是反应过度或从某处复制了类型转换。事实上编码 long type=PositionGetInteger(POSITION_TYPE); if (type==POSITION_TYPE_BUY) return;并不产生任何错误或警告。MQL不要求明确的转换PS。在你开始争论之前,先测试你的假设。 Alexander Bereznyak 2016.01.05 09:19 #254 一个非常糟糕的例子,你在比较中失误了,然后就会遇到错误。 Alexander Bereznyak 2016.01.05 09:21 #255 o_O:PS。在你开始争论之前,先测试你的假设。 在提出建议时要考虑到后果 Mikhail Filimonov 2016.01.05 09:40 #256 o_O:不,你不是。这与它没有关系。编码员只是反应过度或从其他地方抄袭。事实上编码并不产生任何错误或警告。MQL不需要明确的转换PS。在你开始争论之前,先测试你的假设。o_o!Right - wrong....我得到的印象是,你不读别人写的东西!这是不可能的。根据编程规则。接受的函数变量的类型必须与该函数的返回值相同!这就是了!这个猜测就到此为止。你为什么不这样写呢?int type=PositionGetInteger(POSITION_TYPE);因为你知道,这个函数总是返回LONG。而参考文献明确指出,PositionGetInteger()函数的参数POSITION_TYPE返回的值 是 是ENUM_POSITION_TYPE,不是LONG。如果你想练习类型铸造,就这样写吧。int type = int(PositionGetInteger(POSITION_TYPE));if (type==POSITION_TYPE_BUY) return; 编译器不给你出错,并不意味着你写得正确!你要知道,你写的是什么?它表明了编译器的 "自由意志",仅此而已!(它允许你比较LONG和INTEGER)。这是处理这种情况的正确方法。 ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE)); --- 2016.01.05 11:17 #257 Alexander Bereznyak:一个非常糟糕的例子,你错过了比较,然后你会得到一个错误。你是否在某处看到关于进一步与类型转换的内容? 不要通过提及不同的讨论主题来证明你的论点。 这只是关于比较,只有在这种情况下,长是枚举。你已经进入了思想的丛林,尽管问题是直接的,这是由整数回答的。Nextor257: 请指教,我不明白这是一种什么样的比较? 如果(type==(long)POSITION_TYPE_BUY)为什么(long)前面会有POSITION_TYPE_BUY ?德米特里-费多塞耶夫。 这是对变量类型的即时改变。 Vasiliy Sokolov 2016.01.05 11:37 #258 Dmitry Fedoseev: long和lon代替ENUM_POSITION_TYPE和ENUM_POSITION_TYPE8个字符(你可以闭着眼睛打),而不是36个字符(而且是大写字母)!除此以外,还有各种没有意义的信息。这不是一种好的编程风格--不必要的写作和多余的信息。在这种情况下,米哈伊尔是绝对正确的(尽管我对米哈伊尔的编程风格非常反感)。而且,这不是关于潜在的警告,更不是关于字符的数量,而是关于严格的打字。ENUM_POSITION_TYPE 枚举是一个独特的数据类型。它是ENUM_POSITION_TYPE,不是long或int。你必须把它作为ENUM_POSITION_TYPE使用,而不能以其他方式使用。而且,如果你打得很长,自动完成功能会从第三个字符开始,完全没有问题。而问题在于使用long,因为它几乎可以是任何东西,而ENUM_POSITION_TYPE则不是。 o_O:MQL不要求明确的转换起初我写的是确实如此,但后来我看到 "比较 "一词。实际上,在比较中不需要显式转换,因为MQL是隐式转换。而且最好根本不做,因为其结果往往是不确定的。但是在其他正常的严格类型化的语言中,总是需要明确的类型转换。P.S. 这一次,迈克尔给出了一个合格的答案,但人们也开始像往常一样在这里抨击他。而且是徒劳的,因为在这种情况下他是对的。 1...1920212223242526 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这些是你的话,没有警告,但真的有
你生活在什么世界里,你抽什么烟,分享一下
所以,你如此大胆地为我断言我的代码,而你并没有看到?你是不是搞错了蘑菇?
我知道了,不是傻瓜,你有一个没有警告的特殊编译器,特别是个人从MQ
PS:我也想要一个,把它给我。
你给的代码根本不正确!你的代码是什么?
它应该是这样的。
错了,因为这样就有了一个比较。
不,不是的。
这与它没有关系。
编码机只是反应过度或从某处复制了类型转换。
事实上
编码
并不产生任何错误或警告。
MQL不要求明确的转换
PS。在你开始争论之前,先测试你的假设。
一个非常糟糕的例子,你在比较中失误了,然后就会遇到错误。
PS。在你开始争论之前,先测试你的假设。
不,你不是。
这与它没有关系。
编码员只是反应过度或从其他地方抄袭。
事实上
编码
并不产生任何错误或警告。
MQL不需要明确的转换
PS。在你开始争论之前,先测试你的假设。
o_o!
Right - wrong....
我得到的印象是,你不读别人写的东西!这是不可能的。
根据编程规则。
接受的函数变量的类型必须与该函数的返回值相同!
这就是了!
这个猜测就到此为止。
你为什么不这样写呢?
因为你知道,这个函数总是返回LONG。
而参考文献明确指出,PositionGetInteger()函数的参数POSITION_TYPE返回的值 是
是ENUM_POSITION_TYPE,不是LONG。
如果你想练习类型铸造,就这样写吧。
编译器不给你出错,并不意味着你写得正确!你要知道,你写的是什么?
它表明了编译器的 "自由意志",仅此而已!(它允许你比较LONG和INTEGER)。
这是处理这种情况的正确方法。
一个非常糟糕的例子,你错过了比较,然后你会得到一个错误。
你是否在某处看到关于进一步与类型转换的内容? 不要通过提及不同的讨论主题来证明你的论点。
这只是关于比较,只有在这种情况下,长是枚举。
你已经进入了思想的丛林,尽管问题是直接的,这是由整数回答的。
Nextor257:
请指教,我不明白这是一种什么样的比较?
如果(type==(long)POSITION_TYPE_BUY)
为什么(long)前面会有POSITION_TYPE_BUY ?
这是对变量类型的即时改变。
long和lon代替ENUM_POSITION_TYPE和ENUM_POSITION_TYPE
8个字符(你可以闭着眼睛打),而不是36个字符(而且是大写字母)!除此以外,还有各种没有意义的信息。这不是一种好的编程风格--不必要的写作和多余的信息。
在这种情况下,米哈伊尔是绝对正确的(尽管我对米哈伊尔的编程风格非常反感)。
而且,这不是关于潜在的警告,更不是关于字符的数量,而是关于严格的打字。ENUM_POSITION_TYPE 枚举是一个独特的数据类型。它是ENUM_POSITION_TYPE,不是long或int。你必须把它作为ENUM_POSITION_TYPE使用,而不能以其他方式使用。而且,如果你打得很长,自动完成功能会从第三个字符开始,完全没有问题。而问题在于使用long,因为它几乎可以是任何东西,而ENUM_POSITION_TYPE则不是。
MQL不要求明确的转换
起初我写的是确实如此,但后来我看到 "比较 "一词。实际上,在比较中不需要显式转换,因为MQL是隐式转换。而且最好根本不做,因为其结果往往是不确定的。但是在其他正常的严格类型化的语言中,总是需要明确的类型转换。
P.S. 这一次,迈克尔给出了一个合格的答案,但人们也开始像往常一样在这里抨击他。而且是徒劳的,因为在这种情况下他是对的。