次のような関数を宣言すると:
public function foo():void
{
// do something
}
その関数では、次のようなログ メッセージを使用して、アーリー アウトすることを決定する場合があります。
public function foo():void
{
if( somethingWentWrong )
{
log( "blah blah" );
return;
}
// do something
}
wherelog()
は基本的に のラッパーでtrace()
あり、署名付きpublic function log( msg:String ):void
少しスペースを節約するために、そのチェックを書き直して、次のように早めるかもしれません。
public function foo():void
{
if( somethingWentWrong )
return log( "blah blah" );
// do something
}
これは 99% の確率で問題なくコンパイルおよび実行されますが、ときどき(プロジェクトの別の無関係な部分にバグがある場合、またはクリーンアップを行う場合)、次の形式でコンパイル エラーが発生します。
"Error: Return value must be undefined"
そして、コンパイルするには長い形式で書き直す必要があります。コンパイルしたら、短い形式のバージョンに戻すことができ、すべてが再び満足のいくものになります。
ただし、このエラーが発生するとイライラするので、3 行の冗長性を導入するためにコードを書き直す必要はありません。なぜそれが起こっているのか(そしてごくまれに)、そしてどこにでも長い形式を書く前にそれを止める方法について何か考えはありますか? 技術的には、log()
返品を見て、void
問題はないはずです。