程序设计科学/Sway 演示文稿/对象/Examples3
外观
< 程序设计科学 | Sway演示文稿/对象
示例
能够将类进行扩展,使子类拥有相同的名称,是实现方面的好方法。
extends(stack()); //if subclass has new name extends((shadowed(:stack))()); //if subclass has same name
作为替代,使用过滤器是经工具处理的堆栈
include("stack.s");
function emptyPopChecker($expr)
{
if ($expr . context . empty?())
{
throw(:stackError,"pop on empty stack");
}
force($expr);
}
然后,我们可以制作并使用特定堆栈
var s = stack(); s . pop . filter = emptyPopChecker;
不太正确。任何人吗?
function emptyPopChecker2($expr)
{
var result = catch(force($expr));
if (type(result) == :ERROR)
{
throw(:stackError,"pop on empty stack");
}
result;
}