iterator.go
func (it *Iterator) Delete() error {
	if !atomic.CompareAndSwapUint64(&it.nd.value, it.value, deletedVal) {
		if it.setNode(it.nd, false) {
			return ErrRecordUpdated
		}

		return nil
	}

	// Deletion succeeded, so position iterator on next non-deleted node.
	next := it.list.getNext(it.nd, 0)
	it.setNode(next, false)
	return nil
}
func (it *Iterator) Delete() error {
	if !atomic.CompareAndSwapUint64(&it.nd.value, it.value, deletedVal) {
		if it.setNode(it.nd, false) {
			return ErrRecordUpdated
		}

		return nil
	}

	// Deletion succeeded, so position iterator on next non-deleted node.
	next := it.list.getNext(it.nd, 0)
	it.setNode(next, false)
	return nil
}
func ( it * Iterator ) Delete ( ) error { if ! atomic . CompareAndSwapUint64 ( & it . nd . value , it . value , deletedVal ) { if it . setNode ( it . nd , false ) { return ErrRecordUpdated } return nil } // Deletion succeeded, so position iterator on next non-deleted node. next := it . list . getNext ( it . nd , 0 ) it . setNode ( next , false ) return nil }
// Delete marks the current iterator record as deleted from the store if it
// has not been updated since iterating or seeking to it. If the record has
// been updated, then Delete positions the iterator on the most current value
// and returns ErrRecordUpdated. If the record is deleted, then Delete positions
// the iterator on the next record.
Delete marks the current iterator record as deleted from the store if it has not been updated since iterating or seeking to it . If the record has been updated then Delete positions the iterator on the most current value and returns ErrRecordUpdated . If the record is deleted then Delete positions the iterator on the next record .