func New(a Any) *Imp { // x := new(Imp) x.object = Clone(a) x.anchor = heap.New() return x }
func (x *Imp) Del() Any { // if x.num == 0 { return nil } if x.num == 1 { a := x.anchor.Get() x.anchor = heap.New() x.num = 0 return a } y, a := x.anchor.Del(x.num) x.anchor = y.(*heap.Imp) x.num-- if x.num > 0 { x.anchor.Sift(x.num) } return a }