Ошибка возврата значения из регистра переключателя? - PullRequest
3 голосов
/ 19 января 2011

после кодирования пользовательского события в AS3 я столкнулся с любопытной проблемой:

override public function toString():String
    {
    switch  (type)
            {
            case CHANGE:    return formatToString("HistoryEvent", "type", "action", "name", "data");
            case ABILITY:   return formatToString("HistoryEvent", "type", "undoable", "redoable");
            }
    }

приведенный выше код возвращает следующую ошибку во время компиляции:

1170: функция не возвращает значение.

Я могу легко решить проблему, добавив return null; в конце функции, но это излишне, и меня раздражает, что это единственное решение.

почему возвращаемое значение из регистра не отображается компилятором? Является ли это проблемой, специфичной для компилятора AS3, или я на самом деле пытаюсь что-то здесь, что , так что совершенно опасно и неблагоприятно, что это затеняет контркультуристов во всем мире.

Ответы [ 2 ]

3 голосов
/ 19 января 2011

Возможно, ваш переключатель не совпадает, и в этом случае функция не может ничего вернуть.Вот почему компилятор жалуется.Добавление default: return null; к вашей инструкции switch решает проблему, а также добавление return null в конце вашей функции.

0 голосов
/ 19 января 2011

Вы должны добавить блок по умолчанию в свой оператор switch. Тогда компилятор не будет жаловаться на возвращаемое значение

...