2011-11-22 108 views
2

是否可以使用Maya Mel Script語言創建使用case條件中的變量的Switch語句?沿着切斷預定線在case條件中使用變量的開關語句

東西(爲解釋起見笨示例):

$val1 = "foo"; 
$val2 = "bar"; 
// imagine $input as an argument of some proc 
switch ($input) 
{ 
case $val1: 
    print "Input is 'foo'"; 
    break; 

case $val2: 
    print "Input is 'bar'"; 
    break; 
} 

P.S.我試過了,但沒有奏效,但你可能知道另一種選擇。

非常感謝

+0

順便說一下,這更多的是好奇心的問題。我總是可以用'if'語句替換它:) – DiogoNeves

回答

2

不能直接使用變量情況下的值,但是你可以建立一個字符串包含要執行的代碼,用其值替換變量,而該字符串傳遞給eval功能:

$val1 = "foo"; 
$val2 = "bar"; 
// imagine $input as an argument of some proc 
string $cmd; 
$cmd = "switch (\"" + $input + "\")"; 
$cmd += "{"; 
$cmd += "case \"" + $val1 + "\":"; 
$cmd += " print \"Input is 'foo'\";"; 
$cmd += " break;"; 
$cmd += "case \"" + $val2 + "\":"; 
$cmd += " print \"Input is 'bar'\";"; 
$cmd += " break;"; 
$cmd += "}"; 
eval $cmd; 
+0

謝謝:)我完全忘了提及我們試圖避免eval,但是,因爲這個答案對我的原始問題是正確的,我將標記爲正確:)非常感謝! – DiogoNeves