是否有任何语言具有关键字,例如delayedreturn
允许您保存值并仅在方法完成时返回它?
例如,像这样的东西(Java 语法):
public Integer nullify(Node<Integer> node){
delayedreturn node.getValue();
node.setValue(null);
}
我知道这并不能节省太多空间。只是好奇是否有人认为它值得实施。
我所知道的没有类似的语言。这样的关键字很可能会导致返回值存储在临时位置,您已经可以完成:
public Integer nullify (Node<Integer> node) {
Integer delayedReturn = node.getValue();
node.setValue(null);
return delayedReturn;
}
它与您所要求的基本相同,只是语法与您建议的不同。
一个都没见过。但是当你能做到这一点时,这并不重要:
public Integer nullify(Node<Integer> node){
Integer delayedreturn = node.getValue();
node.setValue(null);
return delayedreturn;
}
Java 实际上确实有一些东西可以满足您的要求,而且我什至看到了它的一些合法用途(Doug Lea,如果我没记错的话):
try { return node.getValue(); }
finally { node.setValue(null); }
通常这是危险的,因为从 抛出的异常try
可以被从 抛出的另一个异常所掩盖finally
。