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

Corak reka bentuk biasa untuk fungsi golang

PHPz
Lepaskan: 2024-04-26 17:51:01
asal
542 orang telah melayarinya

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
}
Salin selepas log masuk

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])
            }
        }
    }
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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 })
}
Salin selepas log masuk

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]) })
}
Salin selepas log masuk

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