新参者が聞く!? - ページ 26 1...1920212223242526 新しいコメント Dmitry Fedoseev 2016.01.04 21:20 #251 Alexander Bereznyak:これはあなたの言葉です、警告はありません、しかし、本当にあります。どんな世界に住んでいるのか、何を吸っているのか、共有すること では、あなたは私のコードについて、それが見えないと私に代わって主張するほど大胆なのですか?キノコを間違えていませんか? Alexander Bereznyak 2016.01.04 21:22 #252 Dmitry Fedoseev: それで、あなたは私のコードについて、見てもいないのに大胆に主張するのですか?キノコの間違いでは?私はそれを得た、馬鹿ではない、あなたは警告なしで特別なコンパイラを持っている、特に個人的にMQからPS:私も欲しいです、譲ってください。 --- 2016.01.05 07: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 08:19 #254 は非常に悪い例です、あなたは比較で滑って、そしてエラーに遭遇する。 Alexander Bereznyak 2016.01.05 08:21 #255 o_O:PS.議論を始める前に、自分の仮定を検証する。 提案するときは結果を考える Mikhail Filimonov 2016.01.05 08:40 #256 o_O:いいえ、そんなことはありません。それは関係ない。コードライターが大袈裟に反応したか、どこかからコピーしてきただけ。じつはコードは、エラーや警告を発生させない。MQLは明示的な変換を必要としないPS.議論を始める前に、自分の仮定を検証する。o_o!正しい - 間違っている...。他の人が書いたものを読まないという印象ですプログラミングのルールによる。受け入れる関数変数は、この関数の戻り値と同じ型でなければなりません!それだ!この推測はこれで終わりです。なぜ、このように書かなかったのですか?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を比較することができます)。これがRIGHTな対処法です。 ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE)); --- 2016.01.05 10:17 #257 Alexander Bereznyak:非常に悪い例で、比較をミスって、エラーになる。タイプ変換でさらに、というのをどこかで見たのでしょうか? 議論の対象が違うことを指して、自分のテーゼを正当化するのはやめてください。 これはあくまで比較の話であり、この場合のみlongはenumとなります。あなたはすでに思考の藪の中に入っている、質問は直接的であったが、それは整数で答えられたNextor257 です。 どのような比較なのか理解できないのですが、アドバイスをお願いします。 if(type==(long)POSITION_TYPE_BUY)(long)の前にPOSITION_TYPE_BUYがあるのはなぜですか?ドミトリー・フェドセーエフ これは、変数の種類をその場で変更するものです。 Vasiliy Sokolov 2016.01.05 10:37 #258 Dmitry Fedoseev: ENUM_POSITION_TYPE、ENUM_POSITION_TYPEの 代わりにlong、lonを使用。36文字(しかも大文字)ではなく、8文字(目をつぶっても打てる)!?その上、意味のない情報もいろいろとある。これは良いプログラミングスタイルとは言えません。無駄な文章と冗長な情報です。この場合、Mikhailの言うことは全く 正しい(Mikhailのプログラミングスタイルにはうんざりしているが)。しかも、潜在的な警告や、ましてや文字数の問題ではなく、厳密なタイピングの 問題です。ENUM_POSITION_TYPE 列挙は、ユニークなデータ型である。longやintではなく、ENUM_POSITION_TYPEです。ENUM_POSITION_TYPEとして使用し、それ以外では使用してはならない。また、長文を入力しても、3文字目からオートコンプリート機能が働くので、全く問題ありません。また、ENUM_POSITION_TYPEがそうでないのに対して、longはほとんど何でもありなので、問題はlongを使うことにある。 o_o。MQLは明示的な変換を必要としない最初はそうだと書いたのですが、「比較」という文字が目に入りました。実は、MQLは暗黙のうちに変換を行うので、比較の際に明示的な変換は必要ありません。そして、その結果は未定義であることが多いので、まったくやらない方がいいのです。しかし、他の通常の厳密に型付けされた言語では、常に明示的な型変換が必要である。追伸:今回ばかりはマイケルもちゃんと答えてくれましたが、みんなここでも彼を冒涜するのに慣れてしまったようです。そして無駄に、この件では彼が正しいのだから。 1...1920212223242526 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これはあなたの言葉です、警告はありません、しかし、本当にあります。
どんな世界に住んでいるのか、何を吸っているのか、共有すること
それで、あなたは私のコードについて、見てもいないのに大胆に主張するのですか?キノコの間違いでは?
私はそれを得た、馬鹿ではない、あなたは警告なしで特別なコンパイラを持っている、特に個人的にMQから
PS:私も欲しいです、譲ってください。
あなたがあげたコードは、まったく正しくありません!
こんな感じでいいんじゃないでしょうか。
違いますね、それなら比較対象がありますから。
いいえ、そんなことはありません。
これは何の関係もない。
コードライターが過剰に反応したか、どこからかタイプ変換を コピーしてきただけだ。
じつは
コード
は、エラーや警告を発生させない。
MQLは明示的な変換を必要としない
PS.議論を始める前に、自分の仮定を検証する。
は非常に悪い例です、あなたは比較で滑って、そしてエラーに遭遇する。
PS.議論を始める前に、自分の仮定を検証する。
いいえ、そんなことはありません。
それは関係ない。
コードライターが大袈裟に反応したか、どこかからコピーしてきただけ。
じつは
コード
は、エラーや警告を発生させない。
MQLは明示的な変換を必要としない
PS.議論を始める前に、自分の仮定を検証する。
o_o!
正しい - 間違っている...。
他の人が書いたものを読まないという印象です
プログラミングのルールによる。
受け入れる関数変数は、この関数の戻り値と同じ型でなければなりません!
それだ!
この推測はこれで終わりです。
なぜ、このように書かなかったのですか?
なぜなら、この関数は常にLONGを返すことが分かっているからです。
そして、リファレンスには、PositionGetInteger() 関数の引数POSITION_TYPEで返される値として、次のように明記されています。
は ENUM_POSITION_TYPE であり、LONG ではありません。
そして、タイプキャスティングの練習をしたい人は、このように書きます。
コンパイラがエラーを出さないということは、正しく書いたということではないのです
それは、コンパイラーの「自由意志」を示すものであり、それだけなのです(LONGとINTEGERを比較することができます)。
これがRIGHTな対処法です。
非常に悪い例で、比較をミスって、エラーになる。
タイプ変換でさらに、というのをどこかで見たのでしょうか? 議論の対象が違うことを指して、自分のテーゼを正当化するのはやめてください。
これはあくまで比較の話であり、この場合のみlongはenumとなります。
あなたはすでに思考の藪の中に入っている、質問は直接的であったが、それは整数で答えられた
Nextor257 です。
どのような比較なのか理解できないのですが、アドバイスをお願いします。
if(type==(long)POSITION_TYPE_BUY)
(long)の前にPOSITION_TYPE_BUYがあるのはなぜですか?
これは、変数の種類をその場で変更するものです。
ENUM_POSITION_TYPE、ENUM_POSITION_TYPEの 代わりにlong、lonを使用。
36文字(しかも大文字)ではなく、8文字(目をつぶっても打てる)!?その上、意味のない情報もいろいろとある。これは良いプログラミングスタイルとは言えません。無駄な文章と冗長な情報です。
この場合、Mikhailの言うことは全く 正しい(Mikhailのプログラミングスタイルにはうんざりしているが)。
しかも、潜在的な警告や、ましてや文字数の問題ではなく、厳密なタイピングの 問題です。ENUM_POSITION_TYPE 列挙は、ユニークなデータ型である。longやintではなく、ENUM_POSITION_TYPEです。ENUM_POSITION_TYPEとして使用し、それ以外では使用してはならない。また、長文を入力しても、3文字目からオートコンプリート機能が働くので、全く問題ありません。また、ENUM_POSITION_TYPEがそうでないのに対して、longはほとんど何でもありなので、問題はlongを使うことにある。
MQLは明示的な変換を必要としない
最初はそうだと書いたのですが、「比較」という文字が目に入りました。実は、MQLは暗黙のうちに変換を行うので、比較の際に明示的な変換は必要ありません。そして、その結果は未定義であることが多いので、まったくやらない方がいいのです。しかし、他の通常の厳密に型付けされた言語では、常に明示的な型変換が必要である。
追伸:今回ばかりはマイケルもちゃんと答えてくれましたが、みんなここでも彼を冒涜するのに慣れてしまったようです。そして無駄に、この件では彼が正しいのだから。