Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Corak reka bentuk biasa untuk fungsi golang

Corak reka bentuk biasa untuk fungsi golang

PHPz
PHPzasal
2024-04-26 17:51:01482semak imbas

Corak reka bentuk fungsi bahasa Go digunakan untuk meningkatkan kebolehbacaan kod, kebolehselenggaraan dan kebolehgunaan semula, termasuk: Parameter input/output: membolehkan fungsi mengubah suai nilai pemanggil melalui parameter. Kembalikan berbilang nilai: Permudahkan kod dan elakkan menggunakan pembolehubah global. Berfungsi sebagai parameter: Cipta kod yang fleksibel dan boleh disesuaikan.

Corak reka bentuk biasa untuk fungsi golang

Corak reka bentuk biasa dalam fungsi bahasa Go

Artikel ini memperkenalkan corak reka bentuk fungsi biasa dalam bahasa Go, yang boleh meningkatkan kebolehbacaan, kebolehselenggaraan dan kebolehgunaan semula kod.

Parameter Input/Output

Parameter input/output membenarkan fungsi mengubah suai nilai pemanggil melalui parameter. Sebagai contoh, kita boleh menukar susunan dua nilai dalam fungsi:

func swap(a, b *int) {
    *a, *b = *b, *a
}

Contoh praktikal: Fungsi tambahan untuk mengisih:

func sort(arr []int) {
    for i := 0; i < len(arr); i++ {
        for j := i + 1; j < len(arr); j++ {
            if arr[i] > arr[j] {
                swap(&arr[i], &arr[j])
            }
        }
    }
}

Kembalikan berbilang nilai ​​

Bahasa Go membolehkan fungsi mengembalikan berbilang nilai. Ini memudahkan kod dan mengelakkan penggunaan pembolehubah global. Sebagai contoh, kita boleh menggunakan fungsi untuk mendapatkan nilai minimum dan maksimum daripada tatasusunan:

func minMax(arr []int) (int, int) {
    min := arr[0]
    max := arr[0]
    for _, v := range arr {
        if v < min {
            min = v
        }
        if v > max {
            max = v
        }
    }
    return min, max
}

Contoh praktikal: Fungsi untuk mengira statistik:

func stats(arr []int) (float64, float64) {
    sum := 0
    for _, v := range arr {
        sum += v
    }
    average := float64(sum) / float64(len(arr))
    return average, float64(minMax(arr)[0] + minMax(arr)[1]) / 2
}

Fungsi sebagai parameter

Fungsi Go boleh dihantar sebagai parameter fungsi lain. Ini membolehkan kami membuat kod yang fleksibel dan boleh disesuaikan. Sebagai contoh, kita boleh menggunakan fungsi sebagai fungsi pembanding:

type Person struct {
    Name string
    Age  int
}

func compareByName(a, b Person) int {
    return strings.Compare(a.Name, b.Name)
}

func sortByName(people []Person) {
    sort.Slice(people, func(i, j int) bool { return compareByName(people[i], people[j]) < 0 })
}

Contoh praktikal: Fungsi isihan universal untuk menghiris struktur berdasarkan medan yang berbeza:

func sortBy(slice interface{}, less func(i, j interface{}) bool) {
    sort.Slice(slice, func(i, j int) bool { return less(slice[i], slice[j]) })
}

Atas ialah kandungan terperinci Corak reka bentuk biasa untuk fungsi golang. 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