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