エラー、バグ、質問 - ページ 2633

 

2310
不思議な行動
4番目のパラメータから始まる配列、または5番目、6番目などを設定した場合。

void Func(int arg1, int arg2, int arg3=0, double & array[])
{
 
}

コンパイラがエラーを発生させる

'array' - missing default value for parameter

第1、第2、第3パラメータで配列を並べ替えても、エラーにならない。

void Func(int arg1, int arg2, double & array[] int arg3=0)
{
 
}


2つ目の奇妙な挙動。
F5のエディターで、コンパイル後にスクリプトの実行をトリガーすることが多い。

 
Roman:

2310
これは不思議な行動です。
第4パラメータから始まる配列、または第5、第6パラメータなどを設定した場合。

コンパイラがエラーを発生させる

第1、第2、第3パラメータで配列を並べ替えても、エラーにならない。


2つ目の奇妙な挙動。
F5によるエディターでは、コンパイル後、プログラムの実行をトリガーすることが多い。

あるパラメータにデフォルト値がある場合、それ以降のすべてのパラメータにもデフォルト値があるはずである。

void Func(int arg1, int arg2, int arg3=0, double & array[]  )
{
 
}

これは当初からの行動である。

そして、配列ではなく、最後の引数が持つデフォルト値が重要なのです。それ以降のものにも、必ず搭載しています。

void Func(int arg1, int arg2, double & array[] int arg3=0)
{
 
}
 
Artyom Trishkin:

あるパラメータにデフォルト値がある場合、それ以降のすべてのパラメータにもデフォルト値があるはずである。

これは当初からの行動である。

しかも、配列ではなく、最後の引数のデフォルト値が問題なのです。それ以降のものにも、すべて搭載が義務付けられています。

説明ありがとうございます、でも挙動がおかしいです ))

 
Artyom Trishkin:

だから、ブログのランキングはまだ十分じゃないんだ。

どこで読むことができますか?どのようなレーティングが必要ですか?必要なものは何ですか?
 
Roman:

説明ありがとうございます、でも挙動がおかしいです ))

そんな質問をされるなんて、不思議ですね。ハンドブックに明記されている


Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Всякая задача может быть разбита на подзадачи, каждую из которых можно либо непосредственно представить в виде кода, либо разбить на еще более мелкие подзадачи. Данный метод называется определения функции. Заголовок функции включает в себя описание типа возвращаемого значения, имени (идентификатора) и формальных параметров.  Количество...
 
Petros Shatakhtsyan:

テスターでも動くのであれば、それはそれでいいのですが。確認します。

いいえ、そんなことはありません。

ところで、サーバーの時刻は土曜日には止まらない。ここでは逆に、ターミナルでは、新しいクォートの到着とともにサーバーの時刻が更新される。 例えば、市場概要で1つのシンボルしか開いていない場合(テスター上だけでなく、現実にも)、5秒間刻みがありません - この間、サーバータイムのタイマーは動きません。これは土曜日にも当てはまります:サーバータイムは動いていますが、刻みがないため、ターミナルはそれを知りません。

 
Petros Shatakhtsyan:

しかし、ここでは土曜日かどうかの判断がつかない。やはり、マーケットが閉じた後は、サーバーの時間が止まってしまうのです。

何のために?週末に自動最適化を実行するには?それならOnTickから数分離れたところにタイマーを設定 すればうまくいくでしょう。うまくいけば、ティックが止まっているので、最適化することができます。

他の目的の場合は、それを策定する。

 
Alexey Viktorov:

そんな質問をされるなんて、不思議ですね。ハンドブックには、次のように明記されています。


Alexeyさん、ありがとうございます!この件に関しては、ガイドを見たことがありません)。
なぜなら、私はデフォルトのパラメータをほとんど使わないのですが、ここではそれが必要だったので、出会えたのです。
パラメータには優先順位がないとなぜかずっと思っていましたが、あるんですね。

 

渡された引数から、行列のサイズを設定する方法を教えてください。
こんな感じ

void MxResize(int row, int col)
{
   int A[][];      

   ArrayResizeRow(A, row);    
   ArrayResizeCol(A, col);      
}

以下のエントリは失敗です。 - インデックス値が無効です。

void MxResize(int row=1, int col=1)
{
   int A[row][col];    
      
}
 
Roman:

渡された引数から、行列のサイズを設定する方法を教えてください。

https://www.mql5.com/ru/forum/328008/page2#comment_14166682

Размерность многомерных динамических массивов через ArrayResize
Размерность многомерных динамических массивов через ArrayResize
  • 2019.12.09
  • www.mql5.com
Добрый день. Такой вопрос волнует: как использовать ArrayResize для двумерных динамических массивов...