4.1 函数类型Handler

faygo中已经定义了个函数类型的Handler,源码如下:

  1. type HandlerFunc func(ctx *Context) error
  2. func (h HandlerFunc) Serve(ctx *Context) error {
  3. return h(ctx)
  4. }

当Handler中不直接依赖请求参数时,建议使用函数类型,因为理论上它的执行效率比结构体类型要高一点儿。

下面展示两个示例:

  1. func Count(prefix string) faygo.HandlerFunc {
  2. var count uint64
  3. return func(ctx *faygo.Context) error {
  4. count++
  5. return ctx.String(200, "%s %d", prefix, count)
  6. }
  7. }
  1. var Name = faygo.HandlerFunc(func(ctx *faygo.Context) error {
  2. return ctx.String(200, "faygo")
  3. })