从Switch Case返回值时出错?

时间:2011-01-19 11:21:13

标签: actionscript-3 return switch-statement

在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:功能不返回a   值。

我可以通过在函数末尾添加return null;来轻松解决问题,但这是多余的,让我觉得它似乎是唯一的解决方案。

为什么从编译器看不到的switch case返回一个值?这是一个特定于AS3编译器的问题,或者我实际上在这里尝试的东西是所以完全危险和​​不利于它影响全世界的反文化家。

2 个答案:

答案 0 :(得分:3)

您的开关可能不匹配,在这种情况下,该功能无法返回任何内容。这就是编译器抱怨的原因。将default: return null;添加到switch语句可以解决问题,并在函数末尾添加return null

答案 1 :(得分:0)

您必须在switch语句中添加默认块。然后编译器不会抱怨返回值