Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Artikel yang menerangkan penggunaan pilihan golang secara terperinci

Artikel yang menerangkan penggunaan pilihan golang secara terperinci

PHPz
PHPzasal
2023-04-23 10:07:44837semak imbas

Pengenalan

Di Golang, kita boleh menggunakan pilihan fungsi untuk melanjutkan fungsi fungsi. Menggunakan pilihan fungsi menjadikan kod anda lebih jelas dan lebih mudah untuk digunakan dan diselenggara.

Ringkasnya, pilihan fungsi ialah model pengaturcaraan berasaskan fungsi. Pembangun menggunakan pilihan fungsi untuk menetapkan beberapa parameter tingkah laku fungsi, dan bukannya menggunakan lebihan fungsi berbilang.

Penggunaan

Pertama, mari kita lihat contoh mudah Untuk menunjukkan faedah corak pilihan fungsi, mari kita anggap kita mempunyai fungsi yang membuat permintaan HTTP:

func Fetch(url string, timeout time.Duration, retries int) (res *http.Response, err error) {
    ...
}
<.> Parameter fungsi ini termasuk URL, tamat masa dan bilangan percubaan semula. Walau bagaimanapun, apabila perniagaan berkembang, lebih banyak parameter mungkin diperlukan untuk mengawal gelagat permintaan, seperti sama ada untuk menggunakan proksi, sama ada untuk menambah pengepala permintaan, dsb. Jika kita terus menambah parameter pada fungsi seperti di atas, ia akan menjadi sukar untuk dikekalkan. Pada masa ini, kita boleh menggunakan mod pilihan fungsi untuk menulis semula kod.

Pertama, kami mentakrifkan jenis pilihan fungsi:

type Option func(*http.Request) error
Antaranya, Option ialah jenis fungsi yang menerima permintaan http dan mengembalikan ralat.

Kemudian, kami menulis semula fungsi Ambil untuk menggunakan pilihan fungsi:

func Fetch(url string, options ...Option) (res *http.Response, err error) {
    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        return nil, err
    }

    for _, option := range options {
        if err := option(req); err != nil {
            return nil, err
        }
    }

    client := http.DefaultClient
    return client.Do(req)
}
Fungsi Ambil yang ditulis semula ini menerima parameter URL dan boleh menerima sebarang bilangan pilihan untuk Mengubah tingkah laku yang diminta .

Mari kita lihat pelaksanaan jenis fungsi Pilihan dan fungsi Ambil:

Jenis fungsi Pilihan membolehkan kita menentukan pilihan yang mengubah permintaan http. Kami boleh menambah kod untuk mengubah suai permintaan, seperti menambah pengepala permintaan, menetapkan proksi HTTP, dsb.

Fungsi Ambil menerima parameter URL dan sebarang bilangan pilihan. Ia mula-mula mencipta objek permintaan http baharu dengan parameter URL. Kemudian ia melalui semua pilihan dalam urutan dan menggunakannya. Akhir sekali, ia menggunakan klien lalai pakej http untuk melaksanakan permintaan dan mengembalikan hasil pelaksanaan.

Contoh

Andaikan kita ingin meminta antara muka API yang mengandungi data, kita perlu menggunakan token. Untuk melaksanakan fungsi ini, kita boleh mentakrifkan pilihan fungsi:

func WithToken(token string) Option {
    return func(req *http.Request) error {
        req.Header.Add("Authorization", "Bearer "+token)
        return nil
    }
}
Fungsi ini bertanggungjawab untuk menambah pengepala bernama Keizinan pada pengepala permintaan http. Jika tiada ralat berlaku, tiada dikembalikan.

Kod selebihnya adalah sangat mudah. Kita boleh memanggil fungsi Ambil seperti berikut, semasa menggunakan pilihan WithToken:

token := "xxx"
res, err := Fetch("http://example.com/api/data", WithToken(token))
Di sini, kami menggunakan pilihan fungsi WithToken untuk menghantar token kepada fungsi Ambil. Fungsi Ambil akan secara automatik menambah token ini pada pengepala permintaan apabila meminta data.

Seperti yang anda boleh lihat daripada contoh ini, menggunakan corak pilihan fungsi boleh menjadikan kod lebih bersih dan lebih boleh diselenggara. Pada masa yang sama, kebolehlanjutan fungsi pilihan juga membolehkan kami menambah lebih banyak pilihan pada program dengan mudah. Tidak perlu mengubah suai kod sedia ada, hanya tulis fungsi pilihan baharu.

Ringkasan

Artikel ini memperkenalkan penggunaan pilihan fungsi dalam Golang dan cara menggunakan pilihan fungsi untuk melanjutkan kefungsian fungsi. Pilihan fungsi ialah corak pengaturcaraan berasaskan fungsi yang menjadikan kod lebih jelas dan lebih mudah untuk digunakan dan diselenggara. Menggunakan pilihan fungsi membantu mengurangkan bilangan parameter fungsi dan memberikan kawalan parameter kepada pembangun. Dengan cara ini kod kami menjadi lebih fleksibel dan boleh diselenggara.

Atas ialah kandungan terperinci Artikel yang menerangkan penggunaan pilihan golang secara terperinci. 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
Artikel sebelumnya:pemasangan golang centosArtikel seterusnya:pemasangan golang centos