2017-02-13 12 views
0

if/else 섹션이 여러 개인 DXL 매크로가 특정 조건에서만 생성되고 다른 조건에서는 생성되지 않는다고 가정 해보십시오. 어떻게 문자열을 사용하기 전에 존재 여부를 테스트 할 수 있습니까? 나는 string foo = "notset"를 초기화하는하고 값이 변경되지 않았는지 테스트하여 해결 방법을 kludge 수Rational DOORS DXL : 로컬 문자열 변수가 있는지 확인할 수 있습니까?

if (exist string foo) { 
    do_something 
    } else { 
    do_some_other_thing 
} 

에 해당 찾고 있어요,하지만 필요하지 않은 경우 문자열 변수를 만들 필요로하지 않는 것을 선호 할 것입니다.

이것은 로컬 문자열이며 속성에서 찾지 못한 (또는 찾을 수없는) 점에 유의하십시오.

답변

0

if (null string_variable) {을 사용해 보셨습니까? 문자열이 선언되었지만 값이 제공되지 않은 경우이 값은 true으로 평가되므로 정확히 원하는 값이 아닐 수 있습니다. 문자열이 아직 선언되지 않은 경우 실행 오류가 발생할 수도 있습니다.

0

DXL에는 유효 범위가 있습니다. 다음과 같은 코드가 작동하지 않습니다 :

if (cond) { 
    string s = "Hello"; 
} else { 
    // something different 
} 
if (s == ...) print "..." // parse time error, s not defined 

는이 같은 것을 사용할 필요가 :

string s = null; 
if (cond1) { 
    s = "Hallo"; 
} else { 
    // something different 
} 
if (!null s) print "..."; 

난 당신이 DXL 코드 내부에 변수가 선언 된 경우 확인에 대해 이야기하지 않았다 바랍니다. 이것은 선언되지 않은 변수가 DXL이 실행되기 전에 구문 분석 시간 오류를 생성하기 때문에 (autodeclare가 꺼져 있음) 불가능합니다. autodeclare에 의존해서는 안됩니다.