登录
首页 >  Golang >  Go问答

处理 Go 中的可选布尔查询参数

来源:stackoverflow

时间:2024-03-29 15:54:26 190浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《处理 Go 中的可选布尔查询参数》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我正在开发一个 api,其中 get 请求具有一组可应用于数据的过滤器。

其中一个过滤器是二元且非强制的。

我当前的方法是使用 *bool 而不是 bool 来区分过滤器的指定值和非指定值。

var isVisible *bool
isVisibleParam := query.Get("is_visible")

isVisibleParsed, err := strconv.ParseBool(isVisibleParam)
if err != nil {
  isVisible = nil
} else {
  isVisible = &isVisibleParsed

在 sql 中为了正确覆盖这种情况,我有 $param is null or is_visible = $param

上面的代码看起来有点难看,尽管它工作正常。有没有更优雅的方法来实现相同的目的?


正确答案


我认为使用布尔指针来区分“指定”与“非指定”看起来不错。在 sql 方面,也许您可​​以检查它是否不为空,然后将条件附加到查询中。至于代码,也许压缩它会变得更好:

var isVisible *bool
if isVisibleParam, err := strconv.ParseBool(query.Get("is_visible")); err == nil {
    isVisible = &isVisibleParam
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《处理 Go 中的可选布尔查询参数》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>