func (q Query) Except(inputSlice T) (r Query) {
	if q.err != nil {
		r.err = q.err
		return
	}
	if inputSlice == nil {
		r.err = ErrNilInput
		return
	}

	in, ok := takeSliceArg(inputSlice)
	if !ok {
		r.err = ErrInvalidInput
		return
	}

	set := make(map[T]bool)
	for _, v := range q.values {
		if _, ok := set[v]; !ok {
			set[v] = true
		}
	}
	for _, v := range in {
		delete(set, v)
	}
	r.values = make([]T, len(set))
	i := 0
	for k := range set {
		r.values[i] = k
		i++
	}
	return
}
// Except returns set difference of the source sequence and the
// provided input slice using default equality comparer. This is a set
// operation and returns an unordered sequence. inputSlice must be slice of
// a type although it looks like T, otherwise returns ErrInvalidInput.
//
// Example:
// Example:
// 	diffAB, err := From([]int{1,2,3,4,5}).Except([]int{3,4,5,6}).Results()
// 	// diffAB is {1,2}
Except returns set difference of the source sequence and the
provided input slice using default equality comparer. This is a set
operation and returns an unordered sequence. inputSlice must be slice of
a type although it looks like T, otherwise returns ErrInvalidInput.


// Except returns set difference of the source sequence and the // provided input slice using default equality comparer . This is a set // operation and returns an unordered sequence . inputSlice must be slice of // a type although it looks like T otherwise returns ErrInvalidInput . // // Example : // Example : // diffAB err : = From ( [] int { 1 2 3 4 5 } ) . Except ( [] int { 3 4 5 6 } ) . Results () // // diffAB is { 1 2 }
func (q Query) Except(inputSlice T) (r Query) {
	if q.err != nil {
		r.err = q.err
		return
	}
	if inputSlice == nil {
		r.err = ErrNilInput
		return
	}
	in, ok := takeSliceArg(inputSlice)
	if !ok {
		r.err = ErrInvalidInput
		return
	}
	set := make(map[T]bool)
	for _, v := range q.values {
		if _, ok := set[v]; !ok {
			set[v] = true
		}
	}
	for _, v := range in {
		delete(set, v)
	}
	r.values = make([]T, len(set))
	i := 0
	for k := range set {
		r.values[i] = k
		i++
	}
	return
}
func ( q Query ) Except ( inputSlice T ) ( r Query ) { if q . err != nil { r . err = q . err return } if inputSlice == nil { r . err = ErrNilInput return } in , ok := takeSliceArg ( inputSlice ) if ! ok { r . err = ErrInvalidInput return } set := make ( map [ T ] bool ) for _ , v := range q . values { if _ , ok := set [ v ] ; ! ok { set [ v ] = true } } for _ , v := range in { delete ( set , v ) } r . values = make ( [ ] T , len ( set ) ) i := 0 for k := range set { r . values [ i ] = k i ++ } return }
Except returns set difference of the source sequence and the
provided input slice using default equality comparer.
Except returns set difference of the source sequence and the provided input slice using default equality comparer .