1

我有一个整数查询参数“page”,默认为 1。我可以从 Echo 上下文中获取它,如下所示:

var page int
pageString := c.QueryParam("page")
if pageString == "" {
    page = 1
} else {
    var err error
    page, err = strconv.Atoi(pageString)

    if err != nil {
        page = 1
    }
}

虽然这可行,但我更喜欢做类似的事情,page := c.QueryParamInt("page", 1)但我在 Echo 文档中找不到任何等价物。我应该只编写自己的实用程序函数还是有更好的方法?

4

2 回答 2

1

您可以尝试以下方法:

qp := c.QueryParam("page")
page, err := strconv.Atoi(qp)
if err != nil {
        page=1
}

你不必写那么多 ifelse 。希望这可以帮助。

于 2020-01-16T12:05:09.023 回答
1

如果您打算解析许多整数参数,那么最好的办法是编写自己的实用程序函数:

func QueryParamInt(c echo.Context, name string, default int) int {
  param := c.QueryParam(name)
  result, err := strconv.Atoi(param)
  if err != nil {
    return default
  }
  return result
}

然后随心所欲地使用它。
其他选项是扩展回声上下文,更多内容请参见此处

于 2020-01-16T12:13:53.570 回答