第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

在 Go 中解壓 redis 設(shè)置位串

在 Go 中解壓 redis 設(shè)置位串

Go
繁星點(diǎn)點(diǎn)滴滴 2021-10-04 18:15:42
使用redis#Setbit像一鍵設(shè)置位:redis.Do("SETBIT", "mykey", 1, 1)。當(dāng)我使用redis#Getlike閱讀它時(shí)redis.Do("GET", "mykey"),我得到了一個(gè)字符串。如何解壓縮字符串以便在 Go 中獲得一片布爾值?在 Ruby 中,你使用String#unpack就像"@".unpack它返回["00000010"]
查看完整描述

1 回答

?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

中沒有這樣的幫手redigo。這是我的實(shí)現(xiàn):


func hasBit(n byte, pos uint) bool {

    val := n & (1 << pos)

    return (val > 0)

}



func getBitSet(redisResponse []byte) []bool {

    bitset := make([]bool, len(redisResponse)*8)


    for i := range redisResponse {

        for j:=7; j>=0; j-- {

            bit_n := uint(i*8+(7-j))

            bitset[bit_n] = hasBit(redisResponse[i], uint(j))

        }

    }


    return bitset

}

用法:


    response, _ := redis.Bytes(r.Do("GET", "testbit2"))


    for key, value := range getBitSet(response) {

        fmt.Printf("Bit %v = %v \n", key, value)

    }


查看完整回答
反對 回復(fù) 2021-10-04
  • 1 回答
  • 0 關(guān)注
  • 240 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號