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にはパラメータが必要で、しかも大量にあるので、それを避けることはできません[...]。 エクスターンは、確かに避けられないものです。具体的には、コードで値を変更することは推奨されませんし、関数間の情報受け渡しに使うべきではありません(こちら→https://www.mql5.com/en/forum/123535) 。 私はGlobalVariableの命名規則を使っています:管理がずっと簡単で、いくつかのバグを避けることができます。 この議論は、グローバルスコープで定義された変数(特殊関数 start(), init(), deinit() の外で宣言されたもの)に関するもので、GVに関する ものではありません....この2つを混同しないようにしましょう。 削除済み 2010.06.27 18:04 #26 複数の結果を返す関数を 持つプログラミング言語はあるのでしょうか? Ian Venner 2010.06.28 00:19 #27 2つの値を組み合わせて返すように関数を だまし、呼び出し側の関数で再び組み合わせることができるかもしれません。 次のような感じです。 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: 2つの値を組み合わせて返すように関数をだまし、呼び出し側の関数で再び組み合わせることができるかもしれません。 次のような感じです。 [...] 違うかもしれません。 Ian Venner 2010.06.28 01:18 #29 なんでやねん gordon 2010.06.28 05:57 #30 SDC: なんでやねん なぜ、存在しない問題を解決するのか?なぜ車輪を再発明するのか?なぜ、限られたケースでしか機能しない不明瞭なコードを作り上げるのか? 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? 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にはパラメータが必要で、しかも大量にあるので、それを避けることはできません[...]。
エクスターンは、確かに避けられないものです。具体的には、コードで値を変更することは推奨されませんし、関数間の情報受け渡しに使うべきではありません(こちら→https://www.mql5.com/en/forum/123535) 。
私はGlobalVariableの命名規則を使っています:管理がずっと簡単で、いくつかのバグを避けることができます。
複数の結果を返す関数を 持つプログラミング言語はあるのでしょうか?
2つの値を組み合わせて返すように関数を だまし、呼び出し側の関数で再び組み合わせることができるかもしれません。
次のような感じです。
a = 10;
b = 20;
a = a*1000
c = a+b // 10020
return(c) とします。
とすると、呼び出し側の関数では
b = c%1000 // 20
a = c-b/1000 // 10
2つの値を組み合わせて返すように関数をだまし、呼び出し側の関数で再び組み合わせることができるかもしれません。
次のような感じです。
[...]なんでやねん
なんでやねん