Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何将uint32转换为字符串?_Go - Fatal编程技术网

Go 如何将uint32转换为字符串?

Go 如何将uint32转换为字符串?,go,Go,我需要将uint32转换为string。我该怎么做strconv.Itoa似乎不起作用 说来话长: 我需要将通过imap包接收的UID转换为string,以便以后可以将其设置为序列。作为旁注,我想知道为什么这样的转换在围棋中很困难。一个caststring(t)本可以轻松得多。 请注意,预期参数为uint64,因此必须首先强制转换uint32。没有特定的FormatUint32函数。我只会使用Sprintf,甚至只使用Sprint: var n uint32 = 42 str := fmt.Sp

我需要将
uint32
转换为
string
。我该怎么做<代码>strconv.Itoa似乎不起作用

说来话长:
我需要将通过imap包接收的UID转换为
string
,以便以后可以将其设置为序列。作为旁注,我想知道为什么这样的转换在围棋中很困难。一个cast
string(t)
本可以轻松得多。


请注意,预期参数为
uint64
,因此必须首先强制转换
uint32
。没有特定的
FormatUint32
函数。

我只会使用Sprintf,甚至只使用Sprint:

var n uint32 = 42
str := fmt.Sprint(n)
println(str)
Go是强类型的。将数字直接转换为字符串是没有意义的。想想C,其中字符串是
char*
,它是指向字符串的第一个字母的指针,以
\0
结尾。将数字强制转换为字符串将导致第一个字母指针指向该数字的地址,这是没有意义的。这就是您需要“主动”转换的原因。

总结:

strconv.Itoa似乎不起作用

接受
int
,它是有符号整数(32位或64位),与体系结构相关(请参阅)

我需要将uint32转换为字符串

  • 使用
  • 使用
  • 更好的选项是
    strconv.FormatUint
    ,因为它速度更快,内存分配更少(基准测试或示例)

    一根铸弦(t)可能会容易得多

    使用
    string
    并不像某些人期望的那样有效,请参阅:

    将有符号或无符号整数值转换为字符串类型将生成一个包含整数UTF-8表示形式的字符串。超出有效Unicode代码点范围的值将转换为“\uFFFD”


    此函数将从Go2中删除,请参见Rob Pike的

    itoa不适用于uint32//code UIDI:=imap.AsNumber(rsp.MessageInfo().UID)。此解决方案速度更快。因此,我建议使用它<代码>基准测试UINTSTRCONV-8 50000000 36.8纳秒/操作vs.
    基准测试UINTSPRINT-8 20000000 118纳秒/操作
    var n uint32 = 42
    str := fmt.Sprint(n)
    println(str)