登录
首页 >  Golang >  Go问答

在Golang中获取从URL查询的Bitmap类型过滤器

来源:stackoverflow

时间:2024-02-12 13:54:21 417浏览 收藏

从现在开始,努力学习吧!本文《在Golang中获取从URL查询的Bitmap类型过滤器》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我正在开发一个使用 gin 框架构建的大型 go web 应用程序。对于其中一个请求用户信息的api,有一个过滤器参数,其输入类型为bitmap,表示用户是否在线或离线:

// searchusers api parameter: filteruser
// filteruser is a bitmap
online: 1 << 0
offline: 1 << 1


// values:
0 -> not used
1 -> online
2 -> offline
3 -> all (online, offline)

现在我正在使用 request.url.query 解析所有 api 参数。我想知道这对于位图类型是否也同样有效?我是否需要创建一个 []byte 来处理输入,然后将其转换为整数以进行数据库查询?

func (h *HandleManager) SearchUsers() gin.HandlerFunc {
    return func(c *gin.Context) {
        // ...
        q := c.Request.URL.Query()
        filterUsers := q.Get("filterUser")
        if filterUsers != "" {
            filterUsersByte := []byte(filterUsers)
        } 


正确答案


q.get() 返回一个 string 值,其中包含(可能取决于客户端)位图的十进制表示形式。将其转换为 []byte 将为您提供字符串的 utf-8 编码字节。这不是你想要的。

使用strconv.Atoi()解析字符串中的数字,例如:

filterUsers := q.Get("filterUser")
bitmap, err := strconv.Atoi(filterUsers)
if err != nil {
    // Handle error
}
// Use bitmap

本篇关于《在Golang中获取从URL查询的Bitmap类型过滤器》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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