接收整數切片和匿名函式的 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 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.