考虑一个问题,我正在开发像 Collection 这样的树。
我的 Collection 的主要功能之一是逐个跟踪所有存储的项目,然后为每个项目调用给定函数,直到满足给定条件(惰性集合)。
因此该函数应具有以下签名:
void Trace(function func, criteria crit)
{
item i = firstItem();
while (i != endItem())
{
i = nextItem();
func(i);
if (crit(i))
return;
}
}
inC++
函数指针可用于func
和crit
。
在C#
,yield
关键字正是这个问题的解决方案,我相信。
我怎样才能在 Java 中得到同样的东西?