ループの後ろで変数を宣言するのか、ループの中で宣言するのか? - ページ 8

 
Alexey Viktorov:
ありえない、絶対おかしい。 ほんの一例です。ループの中で、オープンポジションに目を通すのです。ポジションチケットを入手したら、それを使ってポジションの他のプロパティを取得する。ポジションプロパティ取得の各関数内でPositionGetTicket(i)を挿入するか、一旦変数に書き込んで使用するかの2通りがあります。しかし、ループを抜けると、このチケットは不要になる...。この変数をOnTick()関数の本体で、あるいはさらに興味深いことにグローバルレベルで宣言するのはなぜでしょうか?

私の言い方が悪かったのかもしれませんが...。

もちろん、OnTick()では必要ありません。ループ(とそこで必要な変数)を関数に入れるのは正しいことなのかどうか?

P.S. 一般に、どんなプロジェクターでも、変数が必要な場所を知っていて、その可視領域を独自に決定するはずですが........。
 

一般的に、ストリングスプラスとmclは別物だと言われています。µlでは基本型であり、明らかに最適化の余地がある。したがって、このような軸ごとの比較は間違っているかもしれません。プラスで統一することには賛成ですが......ないはずなので、μlにするのはやめてほしい。

 
Vict:

一般的に、ストリングスプラスとmclは別物だと言われています。μlでは基本型であり、明らかに最適化の余地がある。そのため、このような不格好な比較をするのは正しくないかもしれません。プラスで統一することには賛成ですが......ないはずなので、μlにするのはやめてほしい。

ベラルーシ語は話せますか?ダメ?なぜ?ベラルーシ語は、古スラビア語にかなり近い。古スラビア語ではなく、ロシア語を話すようになるのでしょうか?どうやら、ベラルーシ語を使う必要があるようだ...。

また怒られそう...。しかし、もう一度言いますが、SIとMQLは違う言語なのです一方がベースになっているにもかかわらず......。

 
Сергей Таболин:

私の言い方が悪かったのかもしれませんが...。

もちろん、OnTick()では必要ありません。ループ(とそこで必要な変数)を関数に入れるのが正しいのでは?

P.S. 一般に、プログラマはどこで変数が必要かを知り、自分でその可視領域を決定する必要が あります......。

ここに金言があります。

また、ループを外部関数に 入れることは、それがコード内で一度だけ使われるのであれば、宗教が何を許すかに依存します。今では多くの人がOOPにこだわって、あらゆるものをクラスやマクロに落とし込んでいます。そんなファッションが流行っている。

 
Alexey Viktorov:

また、ループを外部関数に 入れるのは、コードの中で一度だけ使われるのであれば、宗教の問題です。

この宗教は「SOLID」と呼ばれています。

 

賢いコンパイラを信じる人へ。スクリプトコードの一部を以下に示します。

ソースコードは添付ファイルのとおりです。

string predictor_names[]={"Time_RSI_ZZ_00","rPeresek_Down","Time_ZZ_02","Speed_1_ZZ_Proc_04"...}

struct sRule
  {
   int               predictor_id;
   bool              more_eq; 
   double            value; 
  };
//Лист дерева(набор правил)
struct sLeaf_r
  {
   int               rules_count;              //Сколько правил
   sRule             rules[32];  //Все правила листа
   double            result_leaf;//Результат листа
  };
//Количество всех листьев 164912
sLeaf_r           leaf_rs[]=
  {
     {3,{{0,0,21.5},{1,1,0.5},{2,0,15.5}},0.0},
     {5,{{0,0,21.5},{1,1,0.5},{2,1,15.5},{3,1,6.5},{4,0,-4.5}},-1.0},
......
......
//Очень много данных
  }

void OnStart()
  {

  }

構造体は完全に静的で、leaf_rs 配列は完全に捨てることができる。OnStart() は空である。その結果、コンパイルしたファイルのサイズは2Mbyte近くにもなっています。

ファイル:
test_3.zip  418 kb
 
Igor Makanu:

この宗教はSOLIDと呼ばれています。

イゴール、君のお父さんは僕より何歳も年上なんだ?5年以上はないと思います。それでも語彙は増えているのでしょうか?それとも、若すぎるのか?私の言葉に隠された意味を探さないでください。
 
Alexey Viktorov:

........

また、ループを外部関数に 入れるのは、コードの中で一度だけ使われるのであれば、宗教の問題です。最近はOOPに凝って、あらゆるものをクラスやマクロに落とし込む人が多いですね。今、流行っているんですよ。

以前にも一度質問したことがあるのですが、回答が得られませんでした。まさにそのような場合、「彼らの」宗教を使わないために、変数を破壊する標準的な方法はあるのでしょうか?

それでも、個人的にはループの中で変数を宣言するのは好きではありません。その前に申告するのが望ましいのですが、その後どのように破棄すればいいのでしょうか? ......。そのための機能です。終了後、内部変数は破棄されます。(???)

OOPについては何も言えません。なぜ必要なのか理解できない )))))))時代遅れ、たぶん ))))))))))))))))))))))))))))))))))))))))

 
Сергей Таболин:

以前にも一度質問したのですが、回答がありませんでした。まさにそのような場合、「彼ら」の宗教を利用しないために、変数を破壊する標準的な方法はあるのでしょうか?

個人的にはループの中で変数を宣言するのは好きではないのですが。その前に申告するのが望ましいのですが、その後どのように破棄すればいいのでしょうか? ......。そのための機能です。終了後、内部変数は破棄されます。(???)

OOPについては何も言えません。なぜ必要なのか理解できない )))))))時代遅れ、たぶん ))))))))))))))))))))))))))))))))))))))))

よくわからないんですが、そうなんですか?

if (true) {
        Type var;
        for (...) {
                var.use();
        }
}

知らなかったのだろうか。

 
Alexey Viktorov:
イゴール、あなたのお父さんは私よりずっと年上ではないのですか?

1953-2008年 父

1953-2019 義父