MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 406

 
RomanRott :

가변 개수의 매개변수로 함수를 작성하는 방법은 무엇입니까?

일부 기능 매개변수의 초기값을 설정할 수 있습니다(이 매개변수는 마지막 매개변수여야 함). 함수를 호출 할 때 필요에 따라 이러한 매개변수를 설정하거나 설정하지 않을 수 있습니다. 매개변수가 명시적으로 설정되지 않은 경우 초기 값을 얻습니다.

두 번째 옵션은 과부하입니다. 매개변수의 유형/수만 다른 동일한 이름의 함수를 작성하기만 하면 됩니다.

 
Artyom Trishkin :

예를 들어?


함수에 여러 매개변수를 전달해야 하지만 상황에 따라 미리 알려진 다른 숫자를 전달해야 합니다.
그런 다음 함수에서 이러한 매개변수를 처리합니다.

예를 들어 si에서는 다음과 같이 구현됩니다.

int func(int a, int b, ...)
 

메타에디터의 툴바에 "취소" 버튼을 넣는 방법이 있나요?
(Ctrl+Z를 구현하는 것)

 
RomanRott :

함수에 여러 매개변수를 전달해야 하지만 상황에 따라 미리 알려진 다른 숫자를 전달해야 합니다.
함수에서 이러한 매개변수를 추가로 처리합니다.

예를 들어 si에서는 다음과 같이 구현됩니다.

int func(int a, int b, ...)

배열과 배열에서 가져올 매개변수 수 전달

 
STARIJ :

배열과 배열에서 가져올 매개변수 수 전달

그래서 거기에는 내가 전송해야 하는 숫자가 순서 없이 필요합니다. 즉, 보편성을 형성할 수 없습니다.
 
RomanRott :
그래서 거기에는 내가 전송해야 하는 숫자가 순서 없이 필요합니다. 즉, 보편성을 형성할 수 없습니다.
글쎄, 적어도 하나의 비 추상적 인 예를 들어주십시오.
 
Artyom Trishkin :
글쎄, 적어도 하나의 비 추상적인 예를 들어주십시오.

글쎄, 다음과 같이 :
조건에 따라 (만약 그렇지 않은 경우가 아니라 단순히 실제로이 숫자를 직접 작성합니다)

a = func(숫자, 10, 18, 42); 또는 a = func(숫자, 11, 18, 42, 15, 13); 또는 a = func(숫자, 5);


이중 함수(정수, ????)
{

return( "이 매개변수의 합계"/num);

}

 
RomanRott :

글쎄, 다음과 같이 :
조건에 따라 (만약 그렇지 않은 경우가 아니라 단순히 실제로이 숫자를 직접 작성합니다)

a = func(숫자, 10, 18, 42); 또는 a = func(숫자, 11, 18, 42, 15, 13); 또는 a = func(숫자, 5);


이중 함수(정수, ????)
{

return( "이 매개변수의 합계"/num);

}

그렇다면 가장 먼저 떠오른 것은 위에서 이미 제안한 것처럼 - 함수에 이중 배열을 전달하고 함수에서 전달된 배열의 값에서 필요한 값을 계산합니다 - 또한 알 수 있습니다 숫자의 수( 배열 크기 )에 따라 비율을 계산합니다. 모든 배열 크기에 대해 계산 공식만 동일하게 유지됩니다. 수식을 변경하려는 경우 이러한 요구에 따라 배열만 작동하지 않으므로 원하는 계산 수식을 가리키는 매개변수를 하나 더 만들어야 합니다. 예를 들어, 수식의 유형을 나타내는 열거형(ENUM_TYPE_CALCULATED)을 전달할 수 있고 이 열거형의 전달된 값(예: CALCULATE_SUMM)을 기반으로 전달된 배열의 모든 값의 합을 간단히 계산할 수 있습니다. .

 
RomanRott :
그래서 거기에는 내가 전송해야 하는 숫자가 순서 없이 필요합니다. 즉, 보편성을 형성할 수 없습니다.

본격 답변인데 별 반응이 없네요...

함수를 호출 할 때 필요에 따라 이러한 매개변수를 설정하거나 설정하지 않을 수 있습니다. 매개변수가 명시적으로 설정되지 않은 경우 초기 값을 얻습니다.

두 번째 옵션은 과부하입니다. 매개변수의 유형/수만 다른 동일한 이름의 함수를 작성하기만 하면 됩니다.


 
Alexey Viktorov :

본격 답변인데 별 반응이 없네요...


세트와 숫자의 수를 미리 알지 못하면 새로운 세트마다 기능을 비축할 수 없습니다.