接收整数切片和匿名函数的 Golang 程序,该匿名函数将切片中的每个元素映射到新值


在本文中,我们将编写 Go 语言程序,这些程序接收整数切片和匿名函数,该匿名函数将切片中的每个元素映射到新值。匿名函数在声明时没有名称,并分配给一个变量,该变量用于执行该过程。

语法

func make ([] type, size, capacity)

Go 语言中的 make 函数用于创建数组/映射,它接受要创建的变量类型、其大小和容量作为参数。

func range(variable)

range 函数用于迭代任何数据类型。要使用它,我们首先必须编写 range 关键字,后跟我们要迭代到的数据类型,结果循环将迭代到变量的最后一个元素。

算法

  • 此程序导入 main 和 fmt 作为必要的包。

  • 创建 main 函数。

  • 在 main 中,使用一些值初始化切片,切片名称保留为 values。

  • 使用所需的整数初始化 values 切片。

  • 在此步骤中,定义一个匿名映射函数,并使用整数 n 作为参数。

  • 在函数中,使用 n*2 作为 n 的映射值。

  • 然后,使用 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]

结论

我们编译并执行了接收整数切片并使用匿名函数将其映射到新值的程序。

更新于: 2023年8月4日

72 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告