gpt4 book ai didi

go - string() 做了我希望 strconv.Itoa() 会做的事情

转载 作者:数据小太阳 更新时间:2023-10-29 03:33:13 25 4
gpt4 key购买 nike

我有一个简短的程序,可以将一些二进制数转换成它们的 ASCII 等价物。我试着把它翻译成 今天发现 strconv.Itoa() 没有像我预期的那样工作。

// translate Computer History Museum t-shirt
// http://i.ebayimg.com/images/g/qksAAOSwaB5XjsI1/s-l300.jpg

package main

import (
"fmt"
"strconv"
)

func main() {
var binaryStrings [3]string
binaryStrings = [3]string{"01000011","01001000","01001101"}

for _,bin := range binaryStrings {
if decimal, err := strconv.ParseInt(bin, 2, 64); err != nil {
fmt.Println(err)
} else {
letter := strconv.Itoa(int(decimal))
fmt.Println(bin, decimal, letter, string(decimal))
}
}
}

哪些输出

$ go run chm-tshirt.go 
01000011 67 67 C
01001000 72 72 H
01001101 77 77 M

所以看起来 string() 正在做我认为 strconv.Itoa() 会做的事情。我期待第三列显示我在第四列中得到的内容。这是错误还是我遗漏了什么?

最佳答案

strconv.Itoa 将整数格式化为十进制字符串。示例:strconv.Itoa(65)strconv.Itoa('A')返回字符串 "65" .

string(intValue) 产生一个包含整数的 UTF-8 表示的字符串。示例:string('A')string(65)评估字符串 "A" .

经验表明,许多人错误地期望string(intValue)返回整数值的十进制表示。因为这种期望是如此普遍,Go 1.15 版本的 go vet关于 string(intValue) 的警告当整数值的类型不是 rune 时的转换或 byte (阅读详情 here)。

关于go - string() 做了我希望 strconv.Itoa() 会做的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39235626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com