Rumah >pembangunan bahagian belakang >Golang >fungsi fungsi golang diluluskan sebagai parameter

fungsi fungsi golang diluluskan sebagai parameter

PHPz
PHPzasal
2024-04-22 22:12:01885semak imbas

Dalam Go, fungsi boleh diluluskan sebagai parameter untuk meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod. Sintaks: Lulus nilai jenis fungsi, iaitu func (senarai parameter) jenis nilai pulangan. Kes praktikal: Fungsi Exclaim mengambil rentetan sebagai parameter, mencetak rentetan dan menambah tanda seru. Fungsi PrintWithExcitement menerima parameter fungsi f dan menggunakannya untuk mencetak parameter rentetan s.

fungsi fungsi golang diluluskan sebagai parameter

Melalui fungsi sebagai parameter dalam Go

Dalam Go, anda boleh menghantar fungsi sebagai parameter kepada fungsi lain. Ini membolehkan penciptaan kod boleh guna semula dan modular, dengan itu meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Syntax

Untuk menghantar fungsi sebagai parameter, hanya luluskannya sebagai nilai jenis fungsi. Sintaks untuk jenis fungsi adalah seperti berikut:

func(参数列表) 返回值类型

Sebagai contoh, pertimbangkan fungsi berikut, yang menerima fungsi sebagai parameter dan menggunakannya untuk mencetak mesej:

func PrintMessage(f func(string)) {
    f("Hello, world!")
}

Contoh praktikal

Berikut ialah contoh praktikal yang menunjukkan bagaimana untuk mencipta fungsi dan menggunakannya sebagai Parameter yang dihantar ke fungsi lain:

package main

import "fmt"

// 定义一个函数并将其作为参数传递
func Exclaim(s string) {
    fmt.Println(s + "!")
}

// 定义一个函数,它接收一个函数作为参数
func PrintWithExcitement(s string, f func(string)) {
    f(s)
}

func main() {
    // 传递 Exclaim 函数作为参数
    PrintWithExcitement("Hello", Exclaim)
}

Menjalankan kod di atas akan mengeluarkan:

Hello!

Kod ini menunjukkan cara mentakrifkan fungsi Exclaim,并将其作为参数传递给函数 PrintWithExcitement。然后,PrintWithExcitement 调用 Exclaim untuk mencetak mesej "Hello!" .

Atas ialah kandungan terperinci fungsi fungsi golang diluluskan sebagai parameter. 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