チュートリアルの作者は、ヘルプのルールを破っています - init()関数の前に静的変数を 初期化することです。問題は、まだ宣言されていない変数をどのように初期化するかということです。そうなんです、できないんです。そのため、結果的に、スタティック変数はinit()ブロックの前に宣言する必要があります。単純な定型的三段論法である。If A, then B. A, therefore B は、定言的三段論法の断定的モダスである。初期化されていない変数を初期化することが禁止されている場合(A)、先に宣言しなければならない(B)、禁止がある(A)、従って変数の事前宣言が必要である(B)。
Любая переменная при определении может быть инициализирована. Любая переменная инициализируется нулем (0), если явно не задано другое начальное значение. Глобальные и статические переменные могут быть проинициализированы только константой соответствующего типа. Локальные переменные могут быть проинициализированы любым выражением, а не только константой.
Инициализация глобальных и статических переменных производится однократно. Инициализация локальных переменных производится каждый раз при вызове соответствующих функций.
問題がある
端末の設定でメールを設定する際、SMTP - smtp.gmail.com:25を使用しています。
Mail: 530 5.7.0 最初にSTARTTLSコマンドを発行する必要がある」というエラーが表示されます。L3Sm2329679FAN.0mail.comサーバーのSMTPサーバーは、RFS-2554認証が必要です。何が何だかわからないが、バットでパスワードとmail.ruのログインボックスを複製しなければならなかった、そのkonnektがロールバックされます。数年前までは使えていたのに、何かが変わってしまったのです。同じ25番目のポートでsmtp.rambler.ruを試してみてください - 多分それは動作します。
用語がよくわからない。私が言いたかったのは、もしヘルプがプログラム構造の中で、静的変数を 宣言して初期化しなければならない場所を一箇所だけ厳密に縛るなら、この変数に他の値を代入したり、全く値を代入しない試みは、コンパイラによって構文エラーとして扱われるべきであるということです。つまり、ヘルプにある定義に基づけば、静的変数は定数の入れ物として機能し、プログラム実行中に変更することはできない。フルストップしかし、残念なことに、このルールに違反する行為を2件発見してしまいました。スタティック変数をどこに宣言しても、いつでも再初期化できることがわかった。まあ、ヘルプに書いてくれればいいんだけどね。
また、この変数はサブプログラムで宣言されていてもメインプログラムレベルではグローバルであることがわかりました。
サブルーチン内部でグローバル変数を宣言することの愚かさ、つまりプログラムコードの理解に混乱をきたすということに初めて遭遇したのです。サブルーチン内で宣言された変数の寿命は、サブルーチンの寿命と同じかそれ以下です。定番中の定番ですね。なぜ、サブルーチン内部でグローバル変数を宣言するような変態性がメタクオーツに必要とされたのか、不思議でなりません。
また、チュートリアルでは、スタティック変数を使用する例がありますが、これを見ると、一度初期化しないと、ティックカウンターは動作しないことがわかります。
チュートリアルの作者は、ヘルプのルールを破っています - init()関数の前に静的変数を 初期化することです。問題は、まだ宣言されていない変数をどのように初期化するかということです。そうなんです、できないんです。そのため、結果的に、スタティック変数はinit()ブロックの前に宣言する必要があります。単純な定型的三段論法である。If A, then B. A, therefore B は、定言的三段論法の断定的モダスである。初期化されていない変数を初期化することが禁止されている場合(A)、先に宣言しなければならない(B)、禁止がある(A)、従って変数の事前宣言が必要である(B)。
作者はinit()ブロックの前ではなく、スタティック変数を初期化しただけでなく、ヘルプが必要なプログラム内の間違った場所で宣言していたことが判明しました
くそ、そこに埋まってるのか。見つけた!https://docs.mql4.com/ru/basis/variables/initialization
Любая переменная при определении может быть инициализирована. Любая переменная инициализируется нулем (0), если явно не задано другое начальное значение. Глобальные и статические переменные могут быть проинициализированы только константой соответствующего типа. Локальные переменные могут быть проинициализированы любым выражением, а не только константой.
Инициализация глобальных и статических переменных производится однократно. Инициализация локальных переменных производится каждый раз при вызове соответствующих функций.
ヘルプの著者は、初期化という用語について混乱しています。最初の段落は正しいです。「初期化」という用語は、代入操作の意味で適用されます。つまり、値を持つ変数を初期化することは、値を代入することです。第2段落で、「変数を宣言する」(「変数を定義する」)の代わりに、ヘルプの著者は誤って「初期化」という言葉を使いました。したがって、判定 "グローバル変数とスタティック変数の初期化は1回 "は、"グローバル変数とスタティック変数の宣言は1回 "と読み替える必要があります。そうでなければ、不条理が生じる。初期化が一度しかできない場合、これらの変数の値を実行時に変更することはできない。開発者の皆さん、これらと上記のいくつかの投稿に示されたエラーを修正してください!。
追伸
変数の初期化」と「変数の宣言」を混同していました。上記の書き込みには、間違った用語をたくさん並べてしまいました。:(
くそ、そこに埋まってるのか。見つけた!https://docs.mql4.com/ru/basis/variables/initialization
ヘルプの著者は、初期化という用語について混乱しています。最初の段落は正しい。「初期化」という用語は、代入操作の意味で適用される。つまり、値を持つ変数を初期化することは、その変数に値を代入することである。第2段落で、「変数の宣言」(「変数の定義」)の代わりに、ヘルプの著者は誤って「初期化」という言葉を使いました。したがって、判定 "グローバル変数とスタティック変数の初期化は1回 "は、"グローバル変数とスタティック変数の宣言は1回 "と読み替える必要があります。そうでなければ、不条理が生じる。初期化が一度しかできない場合、これらの変数の値を実行時に変更することはできない。 開発者の皆さん、これらと上記のいくつかの投稿に示されたエラーを修正してください!。
追伸
変数の初期化」と「変数の宣言」を混同していました。上記の書き込みには、間違った用語をたくさん並べてしまいました。:(
皆さん、お幸せに。人形を 助けようまともなEAをアドバイスしてください。セントアカウントデポ for now 60$
初期化は一回限りの操作なので、静的変数の値を変更できる代入がプログラム実行中にできないわけではありません。これらの操作の違いは、初期化の際に、変数の型の宣言とその初期値の代入を明示的または暗黙的に行うことである。init()の前や関数内部でスタティック変数を宣言すると、その変数が宣言された関数や他の関数からしか呼び出すことができなくなります。 。
帰属と識別の概念は同等ですが、そのボリュームは同じであることを理解してくださいつまり、この2つの用語は同義語なのです!!!!
その疑問を原点に深掘りしてみよう。英語のオンライン辞書を開く。identificationという言葉を翻訳しようとしても何も出てこない。それは識別と訳される。ネイティブな言葉ではないので、ネットの辞書を見ただけでは意味がわからない。Googleでボロフスキーの本「プログラミング英露辞典」をダウンロードしてみよう。128ページには次のように書かれている。http://s2.ipicture.ru/uploads/20101230/XwOJxmkn.jpg あとは、アイデンティティとは何かということを突き止めるだけである。オゼゴフの辞書を開く辞書の項目を検索する。
アイデンティティ、-a、Identity。-a, cf.1.完全な類似性、偶然性。D.ビュー2.(アイデンティティ)です。数学では、構成する数量のどの数値に対しても真となる等式。II 形容詞 identical, -a, -a, and identical, -a, -a (to 1st sense).同一の代数的表現。
それが証明されるのです!さて、代入操作の後、変数の値は先ほど代入されたものと全く同じになりますから、変数の識別と変数の特定は、代入操作と全く同じ操作であると結論付けられます。したがって、次のような結論にならざるを得ない。 もしあるルールが、ある変数に、プログラム構造の中で厳密に指定された場所で、たった一つの識別を割り当てるなら、その変数に(識別の後に)別の値を割り当てる権利はない、ということで ある。フルストップ
帰属と識別の概念は同等であるが、その範囲は同じであることを認識せよ!つまり、この2つの言葉は同義語なのです!!!!
その問いの原点に深く迫る。英語のオンライン辞書を開く。identificationという言葉を訳そうとすると何も出てこない。identificationと訳される。ネイティブな言葉ではないので、ネットの辞書を見ただけでは意味がわからない。Googleでボロフスキーの本「プログラミング英露辞典」をダウンロードするのです。128ページには次のように書かれている。http://s2.ipicture.ru/uploads/20101230/XwOJxmkn.jpg あとは、アイデンティティとは何かということを突き止めるだけである。オゼゴフの辞書を開く辞書の項目を検索する。
何を証明する必要があったのか!さて、代入操作の後は、変数の値は先ほど代入された値と全く同じになりますから、変数の同定と代入操作は完全に同じ操作であると結論づけられます。したがって、次のように結論づけることができる。 もしあるルールが、ある変数に、プログラム構造の中で厳密に指定された場所で、1つだけ識別を割り当てるなら、その変数に(識別の後に)別の値を割り当てることはできない、なぜなら識別の概念と割り当ての概念は同義で あるからだフルストップ
初期化と識別は同じものだとおっしゃるのですか?
いや、やめろ--混乱させるな。ちょっと待てよ。
いや、やめろ--混乱させるな。ちょっと待てよ。