为了账号安全,请及时绑定邮箱和手机立即绑定

将 C++ 片段转换为 Golang

将 C++ 片段转换为 Golang

Go
潇潇雨雨 2021-11-01 15:42:34
我正在尝试将以下 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必须是有效的十六进制字符,否则上面的代码会出错。


查看完整回答
反对 回复 2021-11-01
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信