Unexpected newline
yourbasic.org/golang
Why doesn’t this program compile?
func main() {
fruit := []string{
"apple",
"banana",
"cherry"
}
fmt.Println(fruit)
}
../main.go:5:11: syntax error: unexpected newline, expecting comma or }
Answer
In a multi-line slice, array or map literal, every line must end with a comma.
func main() {
fruit := []string{
"apple",
"banana",
"cherry", // comma added
}
fmt.Println(fruit) // "[apple banana cherry]"
}
This behavior is a consequence of the Go semicolon insertion rules.
As a result, you can add and remove lines without modifying the surrounding code.