-
Notifications
You must be signed in to change notification settings - Fork 30
Operation map
Iván Corrales Solera edited this page Dec 2, 2018
·
2 revisions
It converts the current elements in the stream into a different type.
func (s stream.Stream) Map(fn interface{interface{}}) (out stream.Stream)Arguments
| Name | Type | Description |
|---|---|---|
| fn | func | This function must receive 1 arguments, that must have the same type that current elements in the stream. The output of this function will be the new type op elements in the stream |
Output
| Name | Type | Description |
|---|---|---|
| out | stream.Stream | It returns the stream |
| Type | Description |
|---|---|
| err.items-nil | The stream is nil |
| err.invalid-argument | The map operation requires a function as argument |
| err.invalid-argument | The provided function must retrieve 1 argument |
| err.invalid-argument | The provided function must return 1 value |
| err.invalid-argument | The type of the argument in the provided function must be same thant the elements in the stream |
package main
import (
"fmt"
"github.com/wesovilabs/koazee"
)
var stream = koazee.StreamOf([]string{"Dog", "Cat", "Monkey", "Rabbit", "Turtle"})
func main() {
stream = stream.Map(func(val string) int { return len(val) }).Do()
for _, e := range stream.Out().Val().([]int) {
fmt.Println(e)
}
}Converting a stream of strings in a new stream of strings with uppercase
| Test Identifier | Stream Len | Speed |
|---|---|---|
| BenchmarkMapString10ToUpper-4 | 10 | 1366 ns/op |
| BenchmarkMapString100ToUpper-4 | 10 | 7496 ns/op |
| BenchmarkMapString1000ToUpper-4 | 10 | 79248 ns/op |
| BenchmarkMapString5000ToUpper-4 | 10 | 507272 ns/op |
Converting a stream of strings in a new stream of int with the len of all the elements
| Test Identifier | Stream Len | Speed |
|---|---|---|
| BenchmarkReduceInt10Sum-4 | 10 | 324 ns/op |
| BenchmarkReduceInt100Sum-4 | 100 | 629 ns/op |
| BenchmarkReduceInt1000Sum-4 | 1000 | 3782 ns/op |
| BenchmarkReduceInt5000Sum-4 | 5000 | 9533 ns/op |
|
@2018 Koazee by Iván Corrales Solera developer@wesovilabs.com