2013-12-16 7 views
0

부울 값에 따라 호출 할 함수를 결정하려고합니다.UnityScript에서 삼항 연산자의 함수를 호출하는 방법은 무엇입니까?

문에서

표현은 자신의 부작용 만 실행해야합니다 :

myBooleanVariable ? function1() : function2(); 

유니티는 오류를 제공합니다.

그렇다면 왜 이것이 작동하지 않으며 어떻게 작동시킬 수 있습니까?

도움 주셔서 감사합니다.

+1

뭔가 당신이했습니다 나에게 말한다

var f = myBooleanVariable ? function1() : function2(); 

if 사용을 그 오류 메시지에서 중요한 단어를 남겼습니다. ("... must ** not ** be ...") *. –

+0

저에게 도움이됩니다. 자세한 내용을 알려주십시오. – Asterisk

+0

함수가 아무 것도 반환합니까? –

답변

2

그렇다면 왜 이것이 작동하지 않으며 어떻게 작동시킬 수 있습니까? 그것이 작동하지 않는 사실이라면

(I 유니티가 손 필요가 없습니다), 그것은 UnityScript은 (자바 스크립트의 통일의 구현)을 expression statement을 지원하지 않는다는 것을 의미한다. 이것은 사양과 차이가 있으며 상당한 수의 JavaScript 관용구가 작동하지 않는다는 것을 의미합니다. 귀하의 라인은 완벽하게 유효한 JavaScript/ECMAScript입니다. 사용 가능/불가능하게 할 수있는 "lint"스타일 옵션이 있는지 확인할 수 있습니다.

해결 방법은 표현식의 결과를 사용하거나 if을 사용하여 다시 작성하는 것입니다.

결과 사용 : 당신이 정말 한 줄에 할 수 if을 원하는 경우 또는

if (myBooleanVariable) { 
    function1(); 
} 
else { 
    function2(); 
} 

:

if (myBooleanVariable) function1(); else function2(); 
+0

네, 나는 당신의 마지막 줄을 그렸습니다. 나는 삼항 연산자에 대해 뭔가를 건너 뛰고 있는지 알고 싶었습니다. 감사 ! – jeff

+1

@CengizFrostclaw : 사실이 아닙니다 * JavaScript *, 아니요. 당신의 "3 진"라인 (더 정확하게, 당신의 "[조건부 표현식] (http://www.ecma-international.org/ecma-262/5.1/#sec-11.12)"라인)은 진정한 JavaScript에서 잘 작동합니다. –

+0

좋아, 나는 비난 할 것이다 Unity : Thanks again! 1 분 안에 받아 들인다. – jeff