123456789101112131415161718192021222324252627282930313233343536 |
- package main
- import (
- "log"
- "strconv"
- "github.com/tal-tech/go-zero/core/mr"
- )
- type User struct {
- Uid int
- Name string
- }
- func main() {
- uids := []int{111, 222, 333}
- res, err := mr.MapReduce(func(source chan<- interface{}) {
- for _, uid := range uids {
- source <- uid
- }
- }, func(item interface{}, writer mr.Writer, cancel func(error)) {
- uid := item.(int)
- user := &User{
- Uid: uid,
- Name: strconv.Itoa(uid),
- }
- writer.Write(user)
- }, func(pipe <-chan interface{}, writer mr.Writer, cancel func(error)) {
- // missing writer.Write(...), should not panic
- })
- if err != nil {
- log.Print(err)
- return
- }
- log.Print(len(res.([]*User)))
- }
|