2017-02-13 12 views
0

假設我有一個帶有各種if/else部分的DXL宏,這樣一個特定的字符串僅在某些情況下創建,而不是在其他時間創建。在嘗試使用所述字符串之前,如何測試存在性?我在尋找的Rational DOORS DXL:我可以檢查本地字符串變量的存在嗎?

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

相當於我可以初始化string foo = "notset"和測試,看看是否值改變雜牌一個解決辦法,但會喜歡的東西,如果沒有必要,不需要創建字符串變量。

請注意,這是一個本地字符串,而不是在屬性中找到(或未找到)的東西。

回答

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。

相關問題