亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在 go lang 中將 Kafka.header 解析為 int

在 go lang 中將 Kafka.header 解析為 int

Go
慕田峪7331174 2023-03-15 14:56:37
我一直在嘗試在 Go 中將 []kafka.Header 轉換為 int。到目前為止,我已經嘗試了很多方法。其中一些是:將字節數組轉換為字符串,然后再轉換為 int -string(header.Value)將第一個字節轉換為字符串,然后轉換為 int -string(header.Value[0])將第一個字節轉換為 int -int(header.Value[0])使用 strconv 將字節數組轉換為 int -strconv.Atoi(string(header.Value))使用 10 進制和 16 進制解析的自定義函數但是到目前為止,所有的方法要么導致了錯誤,要么導致了不正確的轉換。錯誤消息的快照:錯誤:strconv.Atoi:解析“\x01\x00\x00\x00”:語法無效編碼/十六進制:無效字節:U+0001輸入是這樣的(ASCII 中的單個十六進制字節)-headers: [requestNum="\x01\x00\x00\x00" retryNum="\x1c\x00\x00\x00" retryDelaySecs="@\x01\x00\x00"]預期輸出是它們的 int 等價物,即 1、28、320隨時詢問更多信息。如果有任何建議,請幫助我。提前致謝。
查看完整描述

1 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

使用encoding/binary包讀取二進制數據。例如:

package main


import (

? ? "encoding/binary"

? ? "fmt"


? ? "github.com/confluentinc/confluent-kafka-go/kafka"

)


func main() {

? ? headers := []kafka.Header{

? ? ? ? {

? ? ? ? ? ? Key:? ?"requestNum",

? ? ? ? ? ? Value: []byte("\x01\x00\x00\x00"),

? ? ? ? },

? ? ? ? {

? ? ? ? ? ? Key:? ?"retryNum",

? ? ? ? ? ? Value: []byte("\x1c\x00\x00\x00"),

? ? ? ? },

? ? ? ? {

? ? ? ? ? ? Key:? ?"retryDelaySecs",

? ? ? ? ? ? Value: []byte("@\x01\x00\x00"),

? ? ? ? },

? ? }


? ? for _, h := range headers {

? ? ? ? v := binary.LittleEndian.Uint32(h.Value)

? ? ? ? fmt.Printf("%s: %d\n", h.Key, v)

? ? }

}


查看完整回答
反對 回復 2023-03-15
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號