mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 42

 
PositionSelect 는 실패할 경우 모든 PositionGet 데이터를 재설정합니다.
 
고전적인 실수
 void Func( int & ) {}

void OnStart ()
{
   int i;
  
   Func( true ? i : i); // '?' - parameter passed as reference, variable expected
  Func(i); // OK
}
 
fxsaber :
고전적인 실수
이게 실수라고 하는 게 맞나 하는 생각이 들었다.
 
fxsaber :
이것이 실수인 것이 맞나 하는 생각이 들었습니다.

정확성 측면에서 정확합니다.

분명히 삼항 연산자 는 참조를 반환하지 않고 값에 의한 변수(원칙적으로 비논리적이지 않음)를 반환합니다.

mql이 참조 매개변수가 있는 함수를 좋아하지 않는 임시 변수로 밝혀졌습니다.

저것들. 간단히 말해서 삼항 연산자와 참조는 친숙하지 않습니다.

상식 - x의 관점에서 디자인은 논리적입니다.
 
결합기 :

mql이 참조 매개변수가 있는 함수를 좋아하지 않는 임시 변수로 밝혀졌습니다.

 MqlTick Out()
{
   MqlTick Tick = { 0 };
  
   return (Tick);
}

void In( MqlTick & ) {}

void OnStart ()
{
  In(Out());
}
그냥 "사랑"입니다. 그런 사례 때문에 의문이 생겼습니다.
 
fxsaber :
그냥 "사랑"입니다. 그런 사례 때문에 의문이 생겼습니다.

오류에 대한 바로 그 설명으로 링크 및 비링크에 문제가 있는 것처럼 보입니다.

언어에 대한 최신 지식을 가진 사람이 설명할 수 있습니다.

 

fxsaber :
고전적인 실수

 void Func( int & ) {}

void OnStart ()
{
   int i;
  
   Func( true ? i : i); // '?' - parameter passed as reference, variable expected
  Func(i); // OK
}

그리고 그렇다면

 void Func( int & ) {}

void OnStart ()
{
   int i;
  
   Func( (true ? i : i) );
  Func(i); // OK
}
 
알렉세이 빅토로프 :

그리고 그렇다면

글을 작성하는 것보다 확인하는 것이 빠릅니다.

물론 작동하지 않습니다.

 
fxsaber :

글을 작성하는 것보다 확인하는 것이 빠릅니다.

물론 작동하지 않습니다.

기이한. 저는 테이크가 있거나 없는 포지션을 열 때 항상 이 옵션을 사용합니다.

          trade.BuyStop(lot, buyPrice, _Symbol , 0.0 , (tacke == 0.0 ? 0 : buyPrice+tacke) );
          trade.SellStop(lot, sellPrice, _Symbol , 0.0 , (tacke == 0.0 ? 0 : sellPrice-tacke) );
 
알렉세이 빅토로프 :

기이한. 저는 테이크가 있거나 없는 포지션을 열 때 항상 이 옵션을 사용합니다.

이러한 경우 별도의 추가 조치 없이 브래킷이 작동합니다.