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.