猿问

使用 + 运算符连接字符串

情况1

下面的代码将空格字符与标签字符串连接起来

func printTree(t Tree, nSpaces int) {
    labelValue := strings.Repeat("  ", nSpaces) + string(label(t))
    fmt.Println(labelValue)
    for _, branch := range t.branches {
        printTree(branch, nSpaces+1)
    }}

打印无效字符串,如下所示:

案例2

下面的代码:


func printTree(t Tree, nSpaces int) {

    labelValue := strings.Repeat("  ", nSpaces) + strconv.Itoa(label(t))

    fmt.Println(labelValue)

    for _, branch := range t.branches {

        printTree(branch, nSpaces+1)

    }

}

打印有效字符串。


3

  1

  2

    1

    1

label()返回整数,如下所示:


func label(t Tree) int {

    return t.rootLabel

}

go vet没有给出任何线索


$ go vet Main.go

$ go version

go version go1.14.3 linux/amd64

为什么案例 1 使用此语法失败strings.Repeat("  ", nSpaces) + string(label(t)?


牧羊人nacy
浏览 111回答 1
1回答

ibeautiful

string(i)其中i是一个数字不返回 的字符串表示形式i。它返回一个字符串,其中包含一个值为 的符文i。如果你运行go vet,它会说:从 int 到 string 的转换产生一串一个符文,而不是一串数字(你的意思是 fmt.Sprint(x) 吗?)
随时随地看视频慕课网APP

相关分类

Go
我要回答