當我運行下面的代碼(它應該顛倒一個字符串的內容)時,我從編譯器中得到了奇怪的錯誤。奇怪的編譯器錯誤
package main
import "fmt"
func main(){
argString := "I am a string"
arrayPointer := len(argString)
outputString := "string"
for arrayPointer >= 0 ; arrayPointer-- {
outputString := fmt.Sprintf("%s%s", outputString, argString[arrayPointer])
}
}
它拋出以下錯誤:
prog.go:9: syntax error: missing { after for clause
prog.go:12: syntax error: unexpected }
[process exited with non-zero status]
我以前使用過這個語法(除非我失去了一些東西),我從來沒有見過從中錯誤。我錯過了什麼?
我不知道去,但在我看來像你缺少上初始化對於循環...例如'arrayPointer:= len(argString);' – John3136
猜測你是在寫它作爲一個練習;無論哪種方式,當你需要逐個字符地改變字符串時,使用數組切片是有意義的:http://play.golang.org/p/XOlnr7KP2Y。 Go中的字符串是不可變的,所以你不能只將一個字符附加到一個字符上。相反,你要分配一個新的字符串,每次通過你的循環。 – twotwotwo