Dalam pakej HTTP Go, perbezaan antara http.Handle dan http.HandleFunc terletak pada penggunaan dan fungsinya .
Fungsi http.Handle mendaftarkan pengendali untuk URL tertentu corak. Pengendali ialah antara muka yang mentakrifkan kaedah ServeHTTP, yang mengambil ResponseWriter dan Request sebagai argumen. Ini membolehkan lebih fleksibiliti dalam mengendalikan permintaan HTTP, kerana pengendali boleh terdiri daripada sebarang jenis yang melaksanakan antara muka.
Sebaliknya, http.HandleFunc menyediakan trengkas yang mudah untuk mendaftarkan fungsi sebagai pengendali. Ia mengambil corak URL dan fungsi sebagai argumen, dan secara automatik membalut fungsi dalam jenis HandlerFunc yang melaksanakan kaedah ServeHTTP. HandlerFunc ialah jenis tersuai yang disediakan oleh pakej HTTP, yang hanya memanggil fungsi yang dibalut apabila ServeHTTP dipanggil.
Kod berikut menggambarkan perbezaan:
http.Handle("/foo", fooHandler) // fooHandler implements the handler interface http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) { // Function handler })
Pengendali untuk "/foo " ialah pelaksanaan eksplisit antara muka pengendali, manakala pengendali untuk "/bar" ialah fungsi yang dibungkus secara automatik dalam HandlerFunc.
Sebab utama untuk memiliki kedua-dua Handle dan HandleFunc adalah untuk memberikan fleksibiliti dan kemudahan. Handle membenarkan pengendali yang lebih kompleks dengan keadaan, manakala HandleFunc menawarkan cara yang lebih mudah untuk mendaftarkan pengendali yang tidak memerlukan keadaan.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `http.Handle` dan `http.HandleFunc` dalam Pakej HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!