golang技巧之-string转string 型[]byte数组

    技术2022-07-11  85

    golang技巧之-string转string 型[]byte数组

    用途

    有一个数据库读取到的字符串: “0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F” 需要存储到一个string类型的key当中,另一个使用key 作为参数传入内部使用的 确实要求16个byte的数:

    func f(key string) { keya := []byte(key) .... }

    函数传入的为string类型 得到的数据为string(key[:])

    转化如下

    func stringToByteSlice(s string) string { var ss [16]byte a := strings.Split(s, ",") for i := 0; i < len(ss); i++ { v, _ := strconv.ParseUint(a[i], 0, 8) ss[i] = uint8(v) } return string(ss[:16]) }

    测试代码

    func main() { str := "0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F" key := stringToByteSlice(str) fmt.Printf("key:%T\n", key) testFunc(string(key[:])) } func hello(s string) { for i, v := range s { if i == 8 { fmt.Println("") } fmt.Printf("s[%d]: 0x%X\t", i, v) } fmt.Println("") }

    打印结果

    key:string s[0]: 0x0 s[1]: 0x1 s[2]: 0x2 s[3]: 0x3 s[4]: 0x4 s[5]: 0x5 s[6]: 0x6 s[7]: 0x7 s[8]: 0x8 s[9]: 0x9 s[10]: 0xA s[11]: 0xB s[12]: 0xC s[13]: 0xD s[14]: 0xE s[15]: 0xF
    Processed: 0.012, SQL: 9