2011-11-22 3 views
2

case 조건의 변수를 사용하는 Switch 문을 Maya Mel 스크립트 언어로 만들 수 있습니까? 라인을 따라사례 조건의 변수를 사용하는 문 전환

뭔가 (설명을 위해 어리석은 예) :

$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; 
} 

추신 나는 그것을 시도했지만 효과가 없지만 다른 옵션을 알 수 있습니다.

덕분에 많은

+0

그런데 이것은 호기심 문제입니다. 나는 항상'if' 문으로 대체 할 수있다. :) – DiogoNeves

답변

2
직접 케이스 값으로 변수를 사용할 수 없습니다,하지만 당신은 자신의 값으로 대체 변수를 실행하려는 코드를 포함하는 문자열을 구축하고, 해당 문자열을 전달할 수 있습니다

평가 함수 :

$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을 피하기 위해 노력하고 있다고 언급하는 것을 완전히 잊어 버렸지 만,이 대답이 내 원래의 질문에 맞으면, 나는 정확한 것으로 표시 할 것이다 :) Thanks a lot ! – DiogoNeves