ある同僚return
がルーチンを終了する前にこのステートメントを使用することに眉をひそめることがあります。私は goto がどのように使用されても悪いという考えを共有していませんし、return
このように使用することがなぜ悪いのかを本当に理解することもできません.
質問は比較的言語に依存しません。私は現在 PL/SQL と Objective-C でプログラミングしているので、この言語で例を示します。
Objective-C
-(void)finishedLoading:(NSString*)result success:(BOOL)success
{
NSLog(@"delegate method finished loading invoked");
if (!success) {
self.status.text = @"Failed to load file.";
return; // IS THIS BAD??
}
self.status.text = @"File loaded.";
// do more stuff here with result string
}
PL/SQL
PROCEDURE example(i_parameter pls_integer)
AS
BEGIN
IF i_parameter IS NULL THEN
RETURN; -- is this bad??
END IF;
-- do more stuff here
END example;
return
例は本当に単なる例であり、そのまま批判されることもあるかもしれませんが、なぜそうすべきでないのかを知りたいです。私が見る唯一の代替手段は、ifステートメントをネストして読みにくくする可能性のあるifステートメントを広く受け入れることですが、それを好む人もいますが、その理由はわかりませんでした。