stream.RemoveDuplicates

Remove duplicated elements in the stream.

Function signature

    func RemoveDuplicates()

Arguments

None

Output

None

Errors

Type Message
err.items-nil A nil stream can not be iterated

Examples

package main

import (
	"fmt"
	"github.com/wesovilabs/koazee"
)

var numbers = []int{1, 1, 9, 3, 5, 7, 9}

func main() {
	fmt.Println(koazee.Stream().
		With(numbers).
		RemoveDuplicates().Out().Val())
}
package main

import (
	"fmt"
	"github.com/wesovilabs/koazee"
)

type genre int

const (
	female genre = iota
	male
)

type primate struct {
	name   string
	age    int
	family string
	genre  genre
}

func newPrimate(name string, age int, family string, genre genre) *primate {
	return &primate{
		name:   name,
		age:    age,
		family: family,
		genre:  genre,
	}
}

var primates = []*primate{
	newPrimate("John", 15, "Capuchin", male),
	newPrimate("Laura", 12, "Squirrel monkey", female),
	newPrimate("Benjamin", 23, "Spider monkey", male),
	newPrimate("George", 19, "Golden Lion Tamarin", male),
	newPrimate("Jane", 33, "Orangutan", female),
	newPrimate("Sarah", 7, "Gibbon", female),
	newPrimate("George", 19, "Golden Lion Tamarin", male),
}

func main() {
	primates := koazee.StreamOf(primates).
		RemoveDuplicates().Out().Val().([]*primate)
	for _, primate := range primates {
		fmt.Println(primate.name)
	}

}