Actionscript 3 从开关盒返回值时出错?
在AS3中编写自定义事件后,我遇到了一个奇怪的问题:Actionscript 3 从开关盒返回值时出错?,actionscript-3,return,switch-statement,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 forma
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:函数不返回
价值观
我可以通过添加returnnull轻松解决这个问题代码>在函数的末尾,但这是多余的,而且它似乎是唯一的解决方案,这让我很恼火
为什么编译器看不到从开关案例返回的值?这是AS3编译器特有的问题,还是我在这里真的尝试了一些完全危险和有害的东西,以至于它给全世界的反文化主义者蒙上了阴影 您的开关可能不匹配,在这种情况下,函数无法返回任何内容。这就是编译器抱怨的原因。新增默认值:返回空代码>到switch语句解决了这个问题,并在函数末尾添加了returnnull
。您必须在switch语句中添加默认块。这样编译器就不会抱怨返回值了。我也遇到了同样的问题。这是一个很好的解决方案,您的解释帮助我理解了为什么会发生这种情况,谢谢!