我正在阅读smalltalk教程,我想到了这个想法。
假设我们有一些语言而不是返回我们将某个值标记为最终返回值然后我们继续方法,一旦达到方法结束 - 无论其他什么被调用我们都返回标记值除非别的像这样手动指定: 假设^^是一个运算符,如果在方法结束之前没有发现显式返回,则标记返回值
m1()
{
^^1;
some_other_code;
}
m2(par)
{
^^2;
if par == 1: return 1;
some code;
}
m3(par)
{
if par == 1: return 1;
else if par == 0: ^^0;
do some stuff;
if par < 0: return -1;
}
m1() should return 1
m2(0) should return 2
m2(1) should return 1
m3(0) should return 0
m3(1) should return 1
m3(-2) should return -1
这有点类似于ruby的tap()但不一样
答案 0 :(得分:1)