오류, 버그, 질문 - 페이지 240

 

나는 상태의 단축된 평가를 잘 알고 있다. 이것이 질문의 일부에 대한 답변이 되기를 바랍니다. 그리고 필요한 점검이 이루어집니다. 두 번째 옵션에서 s1.process와 s2.process를 바꾸면 처리가 정확합니다. 질문은 그것에 관한 것이 아니었습니다. 전반적인 결과에 관해서는. 전체 논리적 결과는 조건의 단축된 평가에 의존하지 않습니다. 질문은 같은 클래스의 객체에 대한 정적 변수로서 지역 변수의 동작에 관한 것이었습니다. 아시다시피 동일한 클래스의 객체는 정적 변수 를 덮어씁니다.

Mine: "이론적으로는 코드가 완전히 동일하게 작동해야 합니다. 하지만 ... 옵션은 다르게 작동합니다." "반환의 반환 값은 동일해야 하지만 달라야 한다"로 이해해야 합니다.

Ais :

일반적인 부작용이 있는 숨겨진 재귀처럼 보이거나 ...


예, 재귀처럼 보입니다. 그러나 동일한 메서드를 다른 개체의 중첩 메서드라고 합니다. 마찬가지입니다. 파일을 출력한 결과, d1이 상위 레벨로 돌아갈 때 하위 레벨의 d1에 대해 정의된 값을 남겨둔다는 것을 알았습니다.

 
Vigor :

나는 상태에 대한 단축된 평가를 잘 알고 있다. 이것이 질문의 일부에 대한 답변이 되기를 바랍니다. 두 번째 옵션에서 s1.process와 s2.process를 바꾸면 처리가 정확합니다. 질문은 그것에 관한 것이 아니었습니다. 전반적인 결과에 관해서는. 전체 논리적 결과는 조건의 단축된 평가에 의존하지 않습니다. 질문은 같은 클래스의 객체에 대한 정적 변수로서 지역 변수의 동작에 관한 것이었습니다. 아시다시피 동일한 클래스의 객체는 정적 변수 를 덮어씁니다.

예, 재귀처럼 보입니다. 그러나 동일한 메서드를 다른 개체의 중첩 메서드라고 합니다. 마찬가지입니다. 파일을 출력한 결과, d1이 상위 레벨로 돌아갈 때 하위 레벨의 d1에 대해 정의된 값을 남겨둔다는 것을 알았습니다.

문제를 보여주는 예를 보여주십시오. 결과적으로 "로컬 변수의 손상"이 어떤 식 으로든 표시되지 않습니다. 자체적으로 실행할 수 있는 작업 코드

 

제품 개발자를 위해 모든 작업을 수행해야 하는 이유는 무엇입니까? 타사 개발자의 자격에 대한 불신? 내 자세한 설명에 따르면 한 클래스의 메서드 지역 변수 가 중첩 호출될 때 어떤 일이 발생하는지 다시 한 번 확인하는 것으로 충분했던 것 같습니다.

글쎄, 나는 자유 시간이 있다면, 나는 특별한 예를 쓸 것이다.

 
Vigor :

제품 개발자를 위해 모든 작업을 수행해야 하는 이유는 무엇입니까? 타사 개발자의 자격에 대한 불신? 내 자세한 설명에 따르면 한 클래스의 메서드 지역 변수 가 중첩 호출될 때 어떤 일이 발생하는지 다시 한 번 확인하는 것으로 충분했던 것 같습니다.

글쎄, 나는 자유 시간이 있다면, 나는 특별한 예를 쓸 것이다.

디버거에서 재생되나요?
 
Vigor :

제품 개발자를 위해 모든 작업을 수행해야 하는 이유는 무엇입니까? 타사 개발자의 자격에 대한 불신? 내 자세한 설명에 따르면 한 클래스의 메서드 지역 변수 가 중첩 호출될 때 어떤 일이 발생하는지 다시 한 번 확인하는 것으로 충분했던 것 같습니다.

글쎄, 나는 자유 시간이 있다면, 나는 특별한 예를 쓸 것이다.

이 문제를 재현할 수 있는 방법이 없습니다.
 

다중 통화에서 다른 통화 쌍에 대한 현재 가격 을 얻으려면 어떻게 해야 합니까? 테스트할 때 SymbolInfoTick()은 현재 기호의 가격만 반환하고 다른 쌍에 액세스하려고 할 때 오류 4302를 표시합니다.

 
-Alexey- :

표시기 코드에 따르면,

차트에 추가하거나 재컴파일할 때 단위가 2번 출력되나요? 조건이 동시에 두 번 실행되지 않는 한? 설명해주세요. 일단 그것이 충족되면 저를 위해 필요합니다.

그러면 초기화 블록에 한 번 실행되는 부분을 배치하는 것이 더 쉽지 않습니까?

아니면 지표 계산기에서 한 번만 실행해야 합니까?

 
stringo :
이 문제를 재현할 수 있는 방법이 없습니다.
주석이 있는 예
파일:
overtest.mq5  2 kb
 
mql5 :
디버거에서 재생되나요?
그러나 디버거에서는 모든 것이 정상입니다.
 
Interesting :

그러면 초기화 블록에 한 번 실행되는 부분을 배치하는 것이 더 쉽지 않습니까?

아니면 지표 계산기에서 한 번만 실행해야 합니까?

모두 찾았습니다. 한 차트에는 표시기의 두 번째 복사본이 최소화된 창이 있으므로 두 번째로 인쇄되었습니다. 죄송합니다. 모든 것이 올바르게 작동합니다. 나 자신을 알아차리지 못했다 :) 내 이전 메시지를 삭제했습니다.