0

Delphiでの作業中に私が本当に気に入った点の1つは、result関数の変数があったことです。Delphi関数は次のように終了しました。

result:="My Result";

結果変数のデータ型は、関数の戻り型です。追加のコードは必要ありませんでした。今日、私がJavaで何かを書いているとき、それはほとんどの場合次のように見えます。

function List<Foo> myFunc(){
  List<Foo> myResultVar = new ArrayList<>();
  //--now i do some clever stuff--
  return myResultVar;
}

ご覧のとおり、少なくとも1つ以上のライナーを作成する必要がある場合は、Delphiと比較してボイラープレートコードになります。resultJavaの変数に匹敵するものはありますか?私はそれを知りませんか?

4

2 に答える 2

2

No, there's nothing like that. The only way of saying what to return in Java is to use the return statement.

In your code, why don't you only declare the myResultVar at the point where you actually know the value to return? Or if you decide that in various different branches, declare the variable without giving it an initial value:

int result;
if (something) {
   // Do some work...
   result = foo();
} else {
   // Do some other work...
   result = bar();
}
// Do some post work...
return result;

And if you don't need to do anything after that, just return immediately then anyway... If you can give a concrete example of some code where you really think that having a special variable makes the code significantly simpler, we could try to write the cleanest valid equivalent code in Java.

于 2013-03-02T20:41:52.393 に答える
1

いいえ、Javaプログラミング言語の構文はC言語の構文から派生していますが、DelphiはPascalから派生しています。

Delphiのresult疑似変数のようなものはありません。

于 2013-03-02T20:42:37.397 に答える