Passed
Pull Request — master (#93)
by Hayrullah
02:09
created

map.go   A

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
dl 0
loc 17
rs 10
c 0
b 0
f 0
1
package gotil
2
3
// Creates an array of values by running each element in the given array thru iteratee.
4
// The value to be iterated should be given as the first parameter.
5
// The second parameter will be a function that will take the parameter and return value type interface{}.
6
// 	result := gotil.Map([]int{10, 20}, func(v, i int) int {
7
// 	return v * v
8
// 	})
9
// 	fmt.Println(result)
10
// 	// Output: 100, 400
11
12
func Map[T, D any](s []T, f func(val T, i int) D) []D {
13
	result := make([]D, len(s))
14
	for i, v := range s {
15
		result[i] = f(v, i)
16
	}
17
	return result
18
}
19