Golang 将一个整数切片和一个匿名函数作为参数,该匿名函数将切片中的每个元素映射到一个新的值
在本文中,我们将编写Go语言程序,该程序接受一个整数切片和一个匿名函数作为参数,匿名函数将切片中的每个元素映射到一个新的值。匿名函数是在不使用名称的情况下声明的,并且被赋值给一个变量,以执行相应的过程。
语法
func make ([] type, size, capacity)
在Go语言中,make函数用于创建数组/映射。它接受要创建的变量类型、大小和容量作为参数。
func range(variable)
range函数用于迭代任何数据类型。使用该函数时,我们首先需要写出range关键字,然后紧跟要迭代的数据类型,作为结果,循环将迭代到变量的最后一个元素。
步骤
- 该程序导入所需的main和fmt包。
-
创建一个main函数。
-
在main函数中,使用一些值初始化一个切片,并将切片命名为values。
-
初始化values切片,赋予所需的整数值。
-
在此步骤中,使用一个整数n作为参数定义一个匿名映射函数。
-
在函数中,将n的映射值设为n*2。
-
然后,使用map函数应用映射。
-
调用map函数,将values切片和匿名映射函数作为参数传入。
-
然后,将返回的新映射值切片存储在一个名为new values的变量中。
-
使用来自fmt包的Println函数打印存储在new values中的映射值,其中ln表示新行。
示例
在本例中,我们将编写一个Go语言程序,使用匿名函数将切片中的每个元素映射到一个新值,该匿名函数显示值为n*2。
package main
import (
"fmt"
)
func main() {
values := []int{1, 2, 3, 4, 5}
fmt.Println("The initial values are:", values)
newvalues := Map(values, func(n int) int {
return n * 2
})
fmt.Println("The new mapped values are:")
fmt.Println(newvalues)
}
func Map(values []int, fn func(int) int) []int {
mappedvalues := make([]int, len(values))
for i, val := range values {
mappedvalues[i] = fn(val)
}
return mappedvalues
}
输出
The initial values are: [1 2 3 4 5]
The new mapped values are:
[2 4 6 8 10]
结论
我们编写并执行了一个程序,该程序接收一个整数切片并使用匿名函数将其映射到新的值。