情況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 1label()返回整數,如下所示:func label(t Tree) int { return t.rootLabel}go vet沒有給出任何線索$ go vet Main.go$ go versiongo version go1.14.3 linux/amd64$ 為什么案例 1 使用此語法失敗strings.Repeat(" ", nSpaces) + string(label(t)?
1 回答

ibeautiful
TA貢獻1993條經驗 獲得超6個贊
string(i)
其中i
是一個數字不返回 的字符串表示形式i
。它返回一個字符串,其中包含一個值為 的符文i
。如果你運行go vet
,它會說:
從 int 到 string 的轉換產生一串一個符文,而不是一串數字(你的意思是 fmt.Sprint(x) 嗎?)
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消