Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Memilih Fungsi daripada Senarai Berdasarkan Parameter dan Jenis Pulangan dalam Go?

Bagaimana untuk Memilih Fungsi daripada Senarai Berdasarkan Parameter dan Jenis Pulangan dalam Go?

DDD
Lepaskan: 2024-10-29 19:29:02
asal
913 orang telah melayarinya

How to Select Functions from a List Based on Parameter and Return Types in Go?

Memilih Fungsi daripada Senarai dalam Go

Dalam Go, adalah mungkin untuk membuat senarai fungsi menggunakan kepingan atau tatasusunan. Walau bagaimanapun, memilih fungsi berdasarkan kriteria tertentu, seperti jenis pemulangan atau jenis parameter, memerlukan penggunaan pantulan.

Untuk menentukan sama ada fungsi mengambil hujah integer atau mengembalikan integer, kita boleh menggunakan pakej reflect untuk memeriksa tandatangan jenisnya. Berikut ialah contoh kod yang menunjukkan cara untuk mencapai ini:

<code class="go">package main

import (
    "fmt"
    "reflect"
)

func main() {
    funcs := make([]interface{}, 3, 3) // Use interface{} for any function type
    funcs[0] = func(a int) int { return a + 1 } // Accepts an int, returns an int
    funcs[1] = func(a string) int { return len(a) } // Accepts a string, returns an int
    funcs[2] = func(a string) string { return ":(" } // Accepts a string, returns a string

    for _, fi := range funcs {
        f := reflect.ValueOf(fi)
        functype := f.Type()
        hasIntParam := false
        hasIntReturn := false

        // Check function parameters for int type
        for i := 0; i < functype.NumIn(); i++ {
            if "int" == functype.In(i).String() {
                hasIntParam = true
                break
            }
        }

        // Check function return value for int type
        for i := 0; i < functype.NumOut(); i++ {
            if "int" == functype.Out(i).String() {
                hasIntReturn = true
                break
            }
        }

        // Print the function if it has integer parameter or return type
        if hasIntParam || hasIntReturn {
            fmt.Println(f)
        }
    }
}</code>
Salin selepas log masuk

Dengan menggunakan refleksi, kita boleh introspeksi fungsi dalam senarai dan mencetak secara terpilih fungsi yang memenuhi kriteria yang ditetapkan. Kod ini menerangkan sendiri dan menyediakan demonstrasi yang jelas tentang cara menangani masalah ini dalam Go.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Fungsi daripada Senarai Berdasarkan Parameter dan Jenis Pulangan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan