타이핑 된 옵션 인수에 기본값이 NULL을 가질 수없는 이유는 무엇입니까?
-
05-07-2019 - |
문제
ActionScript 3에서 기본값을 제공하여 선택적 인수를 선언 할 때 값 없는 타이핑 된 인수에 사용할 수 없습니다.
function Action(Param:int=null){
// 1184: Incompatible default value of type Null where int is expected.
}
function Action(Param:int=0){
// No compiler errors
}
이에 대한 해결 방법 또는 모든 데이터 유형에 적용 할 수있는 범용 값이 있습니까?
해결책
int를 숫자로 변경 한 다음 '숫자가 아님'을 의미하는 특별한 숫자 인 NAN으로 설정할 수 있으며 숫자의 숫자 상태를 나타낼 수 있습니다.
무언가가 Nan인지 확인하려면 iSNAN () 함수를 사용해야하며 val == NaN
, 또는 당신은 당신이 기대하는 것을 얻지 못할 것입니다.
function Action(param:Number = NaN) : void {
trace(param);
}
다른 모든 객체의 경우 NULL로 설정할 수 있지만 '원시'숫자는 ActionScript에서 다르게 처리됩니다.
다른 팁
int 변수는 null이 될 수 없으므로 오류가 발생하는 이유입니다. 객체와 같은 참조 유형 만 NULL 일 수 있습니다.
대신 NAN을 NULL 대신 특별 번호로 사용할 수 있습니다. 당신이 무언가를 확인하고 싶다면 당신은 isnan 기능을 사용합니다.
Method Signature에 플래그를 포함하여 매개 변수를 int에서 숫자로 홍보하지 않도록 할 수도 있습니다.
function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
if(intProvided)
doSomeStuff();
}
제휴하지 않습니다 StackOverflow