将 C++ 片段转换为 Golang

我正在尝试将以下 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 版本以相同的方式工作。有任何想法吗?


潇潇雨雨
浏览 137回答 1
1回答

慕的地8271018

您可以使用strconv.ParseUint以下方法轻松完成此操作:reqStr := "jfd0jifdgfa"if len(reqStr) <= 1 {&nbsp; panic("reqStr not long enough")}requestId, err := strconv.ParseUint(reqStr[len(reqStr) - 2:], 16, 64)if err != nil {&nbsp; panic(err)}记住最后两个字符reqStr必须是有效的十六进制字符,否则上面的代码会出错。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go