Groovyでは、returnステートメントはオプションであり、次のようなメソッドを記述できます。
def add(a, b) {
a + b
}
...これは結果を追加a
しb
て呼び出し元に返します。
ただし、メソッドに複数の戻り「ステートメント」がある場合のセマンティクスは何であるか疑問に思います。たとえば、Javaでは次のようになります。
String append(String a, String b) {
if (a == null) {
return b;
}
return a + b;
}
これは(仮想的に)次のようにGroovyに変換できます。
def append(a, b) {
if (! a) {
b
}
a + b
}
ただし、この場合、Groovyは、ステートメントb
の内部が返される必要があることをどのように認識しますか?if
それともそうではありませんか?Groovyは、結果が未使用のステートメントを単純に扱うことはできないと思いますがreturn
、正しいですか?この場合、「オプションのリターン」機能がどのように動作するかについて明確に定義されたセマンティクスはありますか?