0

delayedreturn値を保存し、メソッドが完了したときにのみ値を返すことができるようなキーワードを持つ言語はありますか?

たとえば、次のようなもの (Java 構文):

public Integer nullify(Node<Integer> node){

    delayedreturn node.getValue();

    node.setValue(null);

}

それほど省スペースではないことはわかっています。誰かがそれを実装する価値があると見なしたかどうか、ただ興味があります.

4

3 に答える 3

6

私が知っているような言語はありません。このようなキーワードを使用すると、戻り値が一時的な場所に格納される可能性が高くなりますが、これは既に実行できます。

public Integer nullify (Node<Integer> node) {
    Integer delayedReturn = node.getValue();
    node.setValue(null);
    return delayedReturn;
}

それは本質的にあなたが求めているものと同じですが、あなたが提案したものとは異なる構文です。

于 2013-08-06T18:00:04.383 に答える
2

Java には実際に、まさにあなたが求めていることを実現するものがあります。私は、それが正当に使用されているのを見たことさえあります (私が間違っていなければ、Doug Lea によるものです)。

try { return node.getValue(); } 
finally { node.setValue(null); }

tryからスローされた例外は、からスローされた別の例外によってマスクされる可能性があるため、一般にこれは危険ですfinally

于 2013-08-06T18:27:02.283 に答える