我正在嘗試將以下 C++ 片段轉換為 Golang,但我沒有任何運氣使語法正確。這是 C++ 代碼段的樣子:v8::String::Utf8Value reqStringObj(args[1]);const char *reqString = *reqStringObj;char hex[3] = {reqString[strlen(reqString) - 2], reqString[strlen(reqString) - 1], '\0'};unsigned char requestId = (unsigned char)strtoul (hex, 0, 16);printf("requestId is: %d\n", requestId);到目前為止,這是我通過 Go 版本獲得的:reqStr := "somerandomstringthatihave"hex := []uint8{reqStr[len(reqStr)-2], reqStr[len(reqStr)-1], '\u0027'}requestId := ?????我不確定如何轉換strtoulC++ 函數中提到的強制轉換函數,使其通過 Go 版本以相同的方式工作。有任何想法嗎?
1 回答

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
您可以使用strconv.ParseUint以下方法輕松完成此操作:
reqStr := "jfd0jifdgfa"
if len(reqStr) <= 1 {
panic("reqStr not long enough")
}
requestId, err := strconv.ParseUint(reqStr[len(reqStr) - 2:], 16, 64)
if err != nil {
panic(err)
}
記住最后兩個字符reqStr必須是有效的十六進制字符,否則上面的代碼會出錯。
- 1 回答
- 0 關注
- 165 瀏覽
添加回答
舉報
0/150
提交
取消