이것이 바로 내가 기대했던 것입니다. 따라서 첫 번째 항목에서 한 번만 실행되는 블록의 OnCalculate() 에 ArraySetAsSeries (닫기, 참) 를 넣었습니다. 그리고 이 "직렬화"가 실제로 확립되었습니다. 그러나 놀랍게도 두 번째 틱 이후에는 "시리즈"가 이미 반대였습니다.
막심 쿠즈네초프 :
OnCalculate에서는 드문 경우지만 실제로는 다른 코드에서도 호출되는 경우가 있습니다.
나는 그런 이국적인 것이 없으며 또한 프로그램 내에서 시계열 및 버퍼 배열의 "직렬화"를 변경하지 않습니다. 따라서 지표의 시작 부분에 한 번만 설정하면 충분합니다. 그러나 이러한 배열의 "직렬화"가 유지되는지 확신할 수 없는 경우 각 OnCalculate() 주기의 시작 부분에 설정해야 합니다. 완전히 부자연스러운 것 같습니다.
말해 주세요.
표시기에서 예를 들어 시리즈의 순서입니다. close[]는 ArraySetAsSeries()에 의해 한 번 또는 다른 방법으로 설정됩니까?
이것은 OnCalculate()에서 수행됩니까 아니면 OnInit()에서 수행할 수 있습니까?
나는 이상한 상황에 빠졌습니다.
첫 번째 틱의 항목에서 AS_SERIES에 의해 설정된 close[]의 순서는 다음 틱에서 자연스럽게 정상으로 변경됩니다. !AS_SERIES.
코드에서 무엇과 연결되어 있는지 찾지 못했습니다.
스칼라 &arr[] 수신하는 모든 함수에서 배열 인덱싱 방향에 대해 100% 확신할 수는 없습니다.
또한 내부에서 "직렬화"를 변경하면 함수가 완료된 후에도 이 방향이 유지됩니다. 이는 부작용으로 밝혀져 아무도 예상하지 못한 놀라움을 선사합니다.
따라서 불행히도 함수에 대한 입력에서 배열을 수신할 때 배열의 직렬성을 기억하고 편리한 배열로 설정하고 함수를 종료할 때 항상 원래의 배열을 반환합니다.
OnCalculate에서는 드문 경우지만 실제로는 다른 코드에서도 호출되는 경우가 있습니다.
또한 내부에서 "직렬화"를 변경하면 함수 완료 후에도 이 방향이 유지됩니다.
이것이 바로 내가 기대했던 것입니다. 따라서 첫 번째 항목에서 한 번만 실행되는 블록의 OnCalculate() 에 ArraySetAsSeries (닫기, 참) 를 넣었습니다. 그리고 이 "직렬화"가 실제로 확립되었습니다. 그러나 놀랍게도 두 번째 틱 이후에는 "시리즈"가 이미 반대였습니다.
OnCalculate에서는 드문 경우지만 실제로는 다른 코드에서도 호출되는 경우가 있습니다.
나는 그런 이국적인 것이 없으며 또한 프로그램 내에서 시계열 및 버퍼 배열의 "직렬화"를 변경하지 않습니다. 따라서 지표의 시작 부분에 한 번만 설정하면 충분합니다. 그러나 이러한 배열의 "직렬화"가 유지되는지 확신할 수 없는 경우 각 OnCalculate() 주기의 시작 부분에 설정해야 합니다. 완전히 부자연스러운 것 같습니다.
컴파일 타임에 경고를 생성하는 것이 좋습니다.
고대 이후로 아무것도 변경되지 않았다면 NULL != "" 많은 사람들이 이미 이것을 발견했습니다.
고대 이후로 아무것도 변경되지 않았다면 NULL != "" 많은 사람들이 이미 이것을 발견했습니다.
그것은 다른 것에 관한 것입니다.
그것은 다른 것에 관한 것입니다.
그런 다음 왜 안되는지 설명하십시오. 왜
아마도
그럴 수 없다.
그런 다음 왜 안되는지 설명하십시오.
아래 스크립트는 이것을 보여줍니다.
아래 스크립트는 이것을 보여줍니다.
보여줬다면 질문이 없었을 것이다. 당신은 항상 당신 주변의 모든 사람들이 당신의 생각을 읽어야 한다고 생각하거나 프로그래밍에서 당신보다 더 준비해야 한다고 생각합니다.
보여줬다면 질문이 없었을 것이다. 당신은 항상 당신 주변의 모든 사람들이 당신의 생각을 읽어야 한다고 생각하거나 프로그래밍에서 당신보다 더 준비해야 한다고 생각합니다.
나는 그런 반응의 이유를 이해하지 못한다. 간결한 코드는 기능을 100% 보여줍니다.
나는 그런 반응의 이유를 이해하지 못한다. 간결한 코드는 기능을 100% 보여줍니다.
정상적인 반응입니다. 귀하의 코드를 이해하지 못하여 설명을 요청했지만 응답으로...
NULL은 매우 모호하므로 신중하게 처리해야 합니다. 특히 문자열 변수에 적용될 때.
문서에서
따라서 이 예에서 NULL은 문자열의 길이 가 0이라는 의미가 아니라 변수가 초기화되지 않았음을 의미합니다.
귀하의 예에서
변수가 초기화됩니다. 나에게 명확하지 않은 것은 무엇이며 이해하려는 욕구가 없습니다.
따라서
변수가 초기화되었음을 나타냅니다. 다시 말하지만, 가장 큰 질문은 무엇입니까? NULL로 초기화하는 것이 불가능하다고 생각한 이유는 무엇입니까?
분명히 그러한 초기화는 문자열의 길이가 0이라는 사실로 이어지며, 이것이 이 검사가 말하는 것입니다.