2022-08-05:以下go语言代码输出什么?A:65, string;B:A, string;C:65, int;D:报错。

package main

import (
    "fmt"
)

func main() {
    num := 65
    str := string(num)
    fmt.Printf("%v, %T\n", str, str)
}

答案2022-08-05:

这道题有选A的,也有选D的。但正确答案选B。不过,如果你使用 go vet 检查,会提示:conversion from int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)。 也就是说,如果要将数字 65 转为字符串,不能使用 string(num),如果使用这种方式转,得到的是一个 rune 的字符串表示,因为字面 A 的 ASCII 码是 65,因此这里输出结果是 A,string。

在这里插入图片描述