为了整合这些使用做的一个demo,所以做的比较复杂,并没有太大的实际意义。
只是为了弄懂这些概念练练手。
练手版:
package main
import (
"fmt"
"strconv"
"strings"
"sync"
)
type MapFunc func(interface{
}) interface{
}
type Map struct {
MapF MapFunc
in chan interface{
}
out chan interface{
}
parallelism uint
}
func NewMap(mapFunc MapFunc, parallelism uint) *Map {
_map := &Map{
mapFunc,
make(chan interface{
}),
make(chan interface{
}),
parallelism,
}
go _map.doStream()
return _map