为什么需要在 mql4 中使用数组函数
why need to use array function in mql4
我对mql4数组真的不满意function.In mql4参考他们无法解释为什么需要使用这个函数。
例如为什么我需要使用 arrayinitialize 函数
当你声明一些数组时,它可能包含一些垃圾。很可能你会有默认值,比如 0
或 NULL
但垃圾也可能留在那里。
通过使用“ArrayInitialize()”函数,您可以确保数组中的所有值都是您放置在那里的值。
string arr2str(const int &array[])//fn to print array, ugly, ends with ,|
{
string result="|";
for(int i=0;i<ArraySize(array);i++)
{
result+=(string)i+"="+(string)array[i]+", ";
}
return result+"|";
}
void OnTick()
{
int array[8];
printf("1: %d. %s",ArraySize(array),arr2str(array));
//receive: 1: 8. |0=0, 1=0, 2=0, 3=0, 4=1995110657, 5=146315416, 6=1, 7=85975080, |
int result=ArrayInitialize(array,7);
printf("2: %d %d. %s",result,ArraySize(array),arr2str(array));
//receive: 2: 8 8. |0=7, 1=7, 2=7, 3=7, 4=7, 5=7, 6=7, 7=7, |
ExpertRemove();//to stop the test
}
如您所见,第一个数组输出 (1:) 有一些奇怪的数据。初始化后,没问题 (2:) - 所有都是七,因为我将 7 作为函数中的第二个参数,它很可能是 0 而不是代码中的 7。
我对mql4数组真的不满意function.In mql4参考他们无法解释为什么需要使用这个函数。 例如为什么我需要使用 arrayinitialize 函数
当你声明一些数组时,它可能包含一些垃圾。很可能你会有默认值,比如 0
或 NULL
但垃圾也可能留在那里。
通过使用“ArrayInitialize()”函数,您可以确保数组中的所有值都是您放置在那里的值。
string arr2str(const int &array[])//fn to print array, ugly, ends with ,|
{
string result="|";
for(int i=0;i<ArraySize(array);i++)
{
result+=(string)i+"="+(string)array[i]+", ";
}
return result+"|";
}
void OnTick()
{
int array[8];
printf("1: %d. %s",ArraySize(array),arr2str(array));
//receive: 1: 8. |0=0, 1=0, 2=0, 3=0, 4=1995110657, 5=146315416, 6=1, 7=85975080, |
int result=ArrayInitialize(array,7);
printf("2: %d %d. %s",result,ArraySize(array),arr2str(array));
//receive: 2: 8 8. |0=7, 1=7, 2=7, 3=7, 4=7, 5=7, 6=7, 7=7, |
ExpertRemove();//to stop the test
}
如您所见,第一个数组输出 (1:) 有一些奇怪的数据。初始化后,没问题 (2:) - 所有都是七,因为我将 7 作为函数中的第二个参数,它很可能是 0 而不是代码中的 7。