go - Golang-为什么总是ItoA在返回字符串时删除初始0

标签 go

我试图获取整数长度以请求固定长度的引脚,并试图将整数转换为字符串,但我遇到了这个问题,下面是示例:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    inter := 034567

    fmt.Println(strconv.Itoa(inter))
}

输出量
14711

这是golang游戏地代码:https://play.golang.org/p/r87zeRaoZ23

我想知道如何处理它的原因,以及是否有另一种解决方案来处理这种情况。

最佳答案

034567是整数文字,更具体地说是八进制文字。引用Spec: Integer literals:

整数文字是代表integer constant的数字序列。可选的前缀设置非十进制基数:二进制的0b0B,八进制的表示为 00o0O,十六进制表示为0x0X。单个0被视为十进制零。在十六进制文字中,字母afAF表示值10至15。

八进制034567 =十进制14711

您不能使用保留源代码中提供的int0号。如果需要,请使用其他类型,例如string

如果删除开头的0:inter := 34567,则输出将为34567

关于go - Golang-为什么总是ItoA在返回字符串时删除初始0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58995234/

相关文章:

go - 如何释放内存?

go - 如何交叉编译solaris 32位

go - 如何将 go 方法转换为函数?

assembly - Go 的汇编程序的条件跳转指令是什么?

go - 如何将巨大的 csv 数据(4GB)转储到 mysql 中

带有 SAS token 的 Azure Blob 存储

parsing - 如何解析任意长度的文件?

正则表达式不匹配

go - Go中没有方法的结构的多态性

go - 是否有 Python 的 bisect 模块的 Go 模拟?