2개의 결과를 반환하는 함수? - 페이지 2

 
cameofx :

irusoh1 설명에서 빠진 것은 변수가 Array(s) [...]

irusoh1이 맞습니다. 변수는 배열일 필요가 없습니다. 예를 들어:

 int start()
{
   int returnvalue1, returnvalue2;
   returnvalue1 = Example(returnvalue2);
   MessageBox ( "Example 1: " + returnvalue1 + "\r\nExample 2: " + returnvalue2);
}

int Example( int & referenceparameter)
{
   referenceparameter = 2 ;
   return ( 1 );
}
 
inkexit :

하나의 함수에서 2개의 결과를 반환해야 합니다.

두 개(또는 그 이상)의 결과를 변수에 할당해야 하는 경우 전역으로 선언하고 함수 에서 값을 할당하면 됩니다.
 
engcomp :
두 개(또는 그 이상)의 결과가 변수에 할당되어야 하는 경우 전역으로 선언하고 함수에서 값을 할당하면 됩니다.
전역 변수의 수 를 최소화하는 것은 좋은 프로그래밍 방법으로 간주됩니다. 전역 범위에서 선언하는 것보다 일부 변수를 참조로 전달하는 것이 좋습니다(둘 이상의 변수를 반환해야 하는 경우).
 
gordon :
전역 변수의 수를 최소화하는 것은 좋은 프로그래밍 방법으로 간주됩니다. 전역 범위에서 선언하는 것보다 일부 변수를 참조로 전달하는 것이 좋습니다(둘 이상의 변수를 반환해야 하는 경우).
고마워요, 고든. 그건 몰랐어요.
 
jjc :

irusoh1이 맞습니다. 변수는 배열일 필요가 없습니다. 예를 들어:

내 표현과 개념이 주제에 대답하는 데 올바르지 않습니다. 그래도 참조로 전달하는 목적은 본질적으로 함수 로 Array(s) 를 조작하는 실용적인 방법이라는 것을 알았습니다.

전달된 매개변수를 변수에 대한 참조 함수로 사용하면 X개의 변수와 리턴이 있는 하나의 변수를 수정하는 실용성만 있습니다.

배열에 사용하는 동안 괄호 안에 있는 X개의 배열을 각 배열의 Y 크기로 곱한 값을 수정할 수 있습니다.

 

배열 ae는 항상 참조로 전달됩니다. MQL 배열의 문제는 함수 내에서 변경할 수 없다는 것입니다(크기 조정과 같이).

의미가 없으며 배열 조작 범위를 제한합니다.

MQL5에서 수정되었을 수 있습니까?

 
irusoh1 :

[...] MQL 배열의 문제는 함수 내에서 변경할 수 없다는 것입니다(크기 조정과 같은).

함수 내에서 함수에 대한 참조로 전달된 배열의 크기를 조정할 수 있습니다 . 무슨 뜻인가요?
 
[...] MQL 배열의 문제는 함수 내에서 변경할 수 없다는 것입니다 only their members can 크기 조정 등).

@ irusoh1 : 함수 매개변수를 동적 으로 만든다는 말씀이신가요? 나도 이해가 안 된다.

@ Gordon : 왜 '매개변수는 값으로 전달됩니다. 배열은 참조로만 전달할 수 있습니다'. 나는 그것이 코드에서 어떻게 일어날지 알고 있지만 추론을 얻지는 못합니다. 예를 들어, 그렇지 않은 다른 언어에서 발생하는 경우가 있습니까? 즉, 배열은 값으로 전달됩니다. 그 법칙의 반대가 뭔지는 모르겠지만,,,

 

cameofx :

@ Gordon : 왜 '매개변수는 값으로 전달됩니다. 배열은 참조로만 전달할 수 있습니다'. 나는 그것이 코드에서 어떻게 일어날지 알고 있지만 추론을 이해하지 못합니다. 예를 들어, 그렇지 않은 다른 언어에서 발생하는 경우가 있습니까? 즉, 배열은 값으로 전달됩니다. 그 법칙의 반대가 뭔지는 모르겠지만,,,

여기에 간단한 설명이 있습니다 -> https://www.mql5.com/en/forum/117210 . 배열은 항상 MQL4에서 참조로 전달됩니다.
 

안녕하세요 여러분

Gordon은 다음과 같이 말했습니다: 전역 변수의 수 를 최소화하는 것은 좋은 프로그래밍 방식으로 간주됩니다. 전역 범위에서 선언하는 것보다 일부 변수를 참조로 전달하는 것이 좋습니다(둘 이상의 변수를 반환해야 하는 경우).

죄송하지만 "기술적" 응답은 아닙니다. :) 전역 변수 대신 참조로 변수를 전달하는 것이 더 나은 이유를 말씀해 주시겠습니까?

감사해요

필립