转到内容

程序设计科学/Sway 演示文稿/对象/Examples3

来自维基百科,面向开放世界的开放书籍

示例

能够将类进行扩展,使子类拥有相同的名称,是实现方面的好方法。

   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;
       }

下一篇 上一篇 首页

华夏公益教科书