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

如何在 Go lang 中转换 uint16 中的字符串值?

如何在 Go lang 中转换 uint16 中的字符串值?

Go
拉丁的传说 2021-12-20 10:55:26
我正在研究一个解决方案,以便将字符串(在我的情况下,字符串是“05f8”)转换为 uint16。我进行了研究,但我没有找到解决方案。有人知道怎么做吗?谢谢你的帮助!
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

使用strconv.ParseUint(文档)。


var s = "05f8"

var base = 16

var size = 16

value, err := strconv.ParseUint(s, base, size)

value2 := uint16(value) // done!

请注意,输出值是 an uint64,您必须在使用它之前将其转换为您键入的内容。


注意 (bis) size 参数控制要转换为的 uint 的最大大小,因此溢出检查正确完成。


查看完整回答
反对 回复 2021-12-20
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

如果您有兴趣将 astring变成[]uint16,您可以执行以下操作:


package main


import (

   "fmt"

   "golang.org/x/sys/windows"

)


func main() {

   a, e := windows.UTF16FromString("05f8")

   if e != nil {

      panic(e)

   }

   fmt.Printf("%q\n", a) // ['0' '5' 'f' '8' '\x00']

}

或者,如果您确定不string包含 NUL 字节,则可以执行以下操作:


package main


import (

   "fmt"

   "golang.org/x/sys/windows"

)


func main() {

   a := windows.StringToUTF16("05f8")

   fmt.Printf("%q\n", a) // ['0' '5' 'f' '8' '\x00']

}

https://pkg.go.dev/golang.org/x/sys/windows#StringToUTF16

https://pkg.go.dev/golang.org/x/sys/windows#UTF16FromString


查看完整回答
反对 回复 2021-12-20
?
POPMUISE

TA贡献1765条经验 获得超5个赞

我绝不声称自己是 Go 开发人员,我欢迎对此提供反馈,但我试图将端口的 env 变量从字符串转换为 uint16。我能够让它与:


文件: main.go


package main


import (

  "log"

  "os"

  "strconv"

)


var PORT = os.Getenv("PORT")


func main() {

  portAsInt, err := strconv.ParseInt(PORT, 0, 16)


  if (err != nil) {

    log.Fatal(err)

  }


  // Use as needed with uint16()

  log.Println("Listening on port:", uint16(portAsInt))

}

运行应用程序:


PORT=3000 go run main.go;

# Expected Output:

# Listening on port: 3000


查看完整回答
反对 回复 2021-12-20
  • 3 回答
  • 0 关注
  • 1187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号