According to the answer at How to split a string and assign it to variables in Golang? splitting a string results in an array of strings where the separator is not present i
Try this to get the proper result.
package main import ( "fmt" "strings" ) func main() { str := "Potato:Salad:Popcorn:Cheese" a := strings.SplitAfter(str, ":") for i := 0; i < len(a); i++ { fmt.Println(a[i]) } }