27 ms·
You can do this in Go by making a type declaration defining a function and then adding a method with the same signature on that type, which calls the function.
by saclark11 11mo ago
You can do this in Go by making a type declaration defining a function and then adding a method with the same signature on that type, which calls the function. The Go standard library does exactly this with the `HandlerFunc` type [1].
// The HandlerFunc type is an adapter to allow the use of
// ordinary functions as HTTP handlers. If f is a function
// with the appropriate signature, HandlerFunc(f) is a
// [Handler] that calls f.
type HandlerFunc func(ResponseWriter, *Request)
// ServeHTTP calls f(w, r).
func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request) {
f(w, r)
}
[1]: https://cs.opensource.google/go/go/+/refs/tags/go1.25.4:src/net/http/server.go;l=2314-2323 https://cs.opensource.google/go/go/+/refs/tags/go1.25.4:src/...