Rumah >pembangunan bahagian belakang >Golang >Fungsi Golang Lambda parameter passing

Fungsi Golang Lambda parameter passing

PHPz
PHPzasal
2024-04-23 08:51:01476semak imbas

Dalam bahasa Go, hantaran parameter ungkapan lambda menggunakan sintaks anak panah (=>) untuk menentukan jenis parameter dan jenis pengembalian, membenarkan ungkapan lambda dihantar sebagai parameter kepada fungsi lain. Pendekatan ini memudahkan kod dan menghapuskan keperluan untuk mencipta fungsi bernama. Contohnya: func multiply(fn func(int) int, x int) int { return fn(x); yang membolehkan fungsi ditakrifkan tanpa mencipta fungsi bernama. Dalam bahasa Go, ungkapan Lambda ditakrifkan menggunakan kata kunci func, seperti yang ditunjukkan di bawah:

func(x int) int { return x * x }

Fungsi Golang Lambda parameter passingParameter passing

Apabila menghantar ungkapan Lambda sebagai parameter kepada fungsi lain, anda perlu menggunakan sintaks anak panah (=>) untuk menentukan jenis parameter dan jenis pengembalian. Contohnya:

func multiply(fn func(int) int, x int) int {
    return fn(x)
}

Dalam contoh ini, fungsi darab menerima dua parameter: ungkapan Lambda fn dan integer x. Fungsi darab menghantar x sebagai argumen kepada ungkapan Lambda fn dan mengembalikan hasilnya.

func 关键字定义,如下所示:

package main

import "fmt"

func main() {
    // 创建一个 Lambda 表达式来计算平方
    square := func(x int) int { return x * x }

    // 使用 Lambda 表达式作为参数调用 multiply 函数
    result := multiply(square, 5)

    // 输出结果
    fmt.Println(result) // 输出: 25
}

参数传递

当将 Lambda 表达式作为参数传递给其他函数时,需要使用箭头语法(=>)来指定参数类型和返回类型。例如:

rrreee

在这个例子中,multiply 函数接受两个参数:一个 Lambda 表达式 fn 和一个整数 xmultiply 函数将 x 作为参数传递给 Lambda 表达式 fn,然后返回结果。

实战案例

下面是一个使用 Lambda 参数传递的实战案例:

rrreee

在这个案例中,square Lambda 表达式计算整数的平方,而 multiply 函数使用 square

Kes praktikal🎜🎜🎜Berikut ialah kes praktikal menggunakan lulus parameter Lambda: 🎜rrreee🎜Dalam kes ini, ungkapan segi empat Lambda mengira kuasa dua integer dan darab mengira kuasa dua 5 menggunakan ungkapan Lambda kod. 🎜

Atas ialah kandungan terperinci Fungsi Golang Lambda parameter passing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn