猿问

go语言这个语句表示什么意思?

下面是一个查询users列表的函数:

func ListUser(username string, offset, limit int) ([]*UserModel, uint64, error) {    if limit == 0 {
        limit = constvar.DefaultLimit
    }

    users := make([]*UserModel, 0)    var count uint64

    where := fmt.Sprintf("username like '%%%s%%'", username)  //这个语句的作用是什么?
    if err := DB.Self.Model(&UserModel{}).Where(where).Count(&count).Error; err != nil {        return users, count, err
    }    if err := DB.Self.Where(where).Offset(offset).Limit(limit).Order("id desc").Find(&users).Error; err != nil {        return users, count, err
    }    return users, count, nil}

问题:
上面代码中where := fmt.Sprintf("username like '%%%s%%'", username)这个语句的作用是什么?


森林海
浏览 611回答 1
1回答

跃然一笑

fmt.Sprintf是格式化字符串并赋值给左边的where其中两个%%是fmt语法的问题,在fmt中%%输出的结果是%,所以这个语句可以认为等于where:= "username like %"+username+"%"
随时随地看视频慕课网APP

相关分类

Html5
我要回答