MQL4新手的问题。
void
函数在MQL4中可以做什么限制?
我的意思是void
功能代码可以做什么,什么不能做?
答案 0 :(得分:2)
“ function factura_si() {
var n = getParameterByName('n');
var string_url = "https://www.webpage.php?" + "&n=" + n;
window.location = string_url;
}
function getParameterByName(n) {
//call server or somthing...
return "somo_path";
}
”仅表示此功能没有返回值。因此,void
函数无法“返回值”。
希望有帮助....
答案 1 :(得分:2)
您可以将所有内容放在void
函数中,以便放入double
,int
,string
,bool
,...函数中。函数返回的变量类型有哪些变化。
例如,以下 int
函数返回两个值的总和。
int sum( int a, int b )
{
return( a + b );
}
您可以将此功能转换为 void
功能,而不是返回值,您可以将值打印到控制台。
void printsum( int a, int b )
{
Print( a + b );
}
在您的跟进回答中,您会询问有关创建 void
功能的功能,该功能可以移动平均线。以下void
函数将接受不同的句点作为输入并打印MA。该函数不能直接返回任何值的值(除非你通过引用使用全局变量/传递变量),但它仍然可以接受值并根据这些值做事。
void PrintMA( int period )
{
Print( iMA( NULL, 0, period, 8, MODE_SMMA, PRICE_MEDIAN, 1 ) );
}
您的跟进答案中的 int
功能只会返回0,因此您可以将其换成void
函数并删除return(0)
它将会和以前一样工作。 只需更改功能名称 start
是您应避免使用的功能名称。
如果您阅读了编译日志,您将能够看到为什么您的上述答案无法编译。
答案 2 :(得分:1)
void function(...)
唯一不能做的就是参加MQL4分配声明,即:
someVariable = aVoidDeclaredFUNCTION();
除此之外,人们可以做任何可以想象到的事情。
这有什么用?
void aVoidDeclaredFUNCTION( const int thisParameterWillNeverChangeItsVALUE,
int &thisParameterWillBeAbleToChangeVALUE
){...}
使用技术传递by-Value,resp。传递引用( &passVariableByREF
),即使void function(...)
可以处理和“返回”-results,如果它不足以导致{{1}中的某些操作身体,本身。
答案 3 :(得分:0)
“无效”仅表示该函数不返回任何内容。这些对于分割任何独立的代码段很有用(例如,使代码更有条理,或防止重复代码...等)。
观看以下简短视频(不是我自己制作的),主题为:Void Functions