PDA

Просмотр полной версии : MTASC и условный оператор - проблема


: hr :
20.06.2008, 15:43
Друзья, пишу в FD и компилю mtasc'ом:

class Test
{
public static function main():Void
{
var a:Boolean = true;
var b:Number = 0;
a ? Test.getTrace() : b = 2;
}

public static function getTrace():Void{
trace('ok');
}
}что приводит к ошибке:
src/Test.as:7: characters 2-29 : type error Void should be Number

Что тут не так? ...никак не пойму, подскажите pls :)

chingachgoog
20.06.2008, 15:58
a ? getTrace() : b = 2;

: hr :
20.06.2008, 16:21
не не... public static... да и не важно, проблема в другом

iNils
20.06.2008, 18:48
Наверно это баг мтаска, переписать под if else

: hr :
20.06.2008, 18:57
ясно. тоже подумал что баг... :)

wvxvw
20.06.2008, 19:16
Ну, можно ему "помочь" =)
a ? Number(Test.getTrace()) : b = 2;

iNils
20.06.2008, 19:25
Ну, можно ему "помочь" =)
a ? Number(Test.getTrace()) : b = 2;

ругается

chingachgoog
20.06.2008, 19:38
не не... public static... да и не важно, проблема в другом


Я, конечно, не в мтаске делаю, а в обычном флеш редакторе, но ваш код с a ? Test.getTrace() : b = 2 вызывает ошибку у компилятора, а a ? getTrace() : b = 2 не вызывает.
(понятно что функция статичная, ну и что - она же этого же класса?)
Еще интересно - несмотря на то, что компилятор ругается при a ? Test.getTrace() : b = 2 сам код работает :)

wvxvw
21.06.2008, 18:10
ругается

Ну... даж не знаю... у меня в стрикт муд откомпилировался и слова не сказал =)