轉到內容

程式設計科學/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;
       }

下一篇 上一篇 首頁

華夏公益教科書