Golang Map With String Slice Values

Use a map with string keys and string slices as the values. Add data to this map.

Map, string slices. In Go programming we reuse common forms. We have string slices—these can contain many strings, and we can append strings as

With a map, we can place string slices as the values. So we can associate string keys with lists of values. This is powerful. It helps in many Go programs.

Main example. Here we use a map of string slices in the main func. We initialize the map with two keys—each has its own string slice.

Then: We append to the string slice at the key "dog." The word "dog" is not important—you can change it.

New slice: We add a new slice at the key "fish" with some more color words: "orange" and "red."

Range: Finally we use a for-range loop over the slice at the key "fish." We print indexes and values for the string slice.

Golang program that uses map of string slices package main import "fmt" func main() { // Create map of string slices. m := map[string][]string{ "cat": {"orange", "grey"}, "dog": {"black"}, } // Add a string at the dog key. // ... Append returns the new string slice. res := append(m["dog"], "brown") fmt.Println(res) // Add a key for fish. m["fish"] = []string{"orange", "red"} // Print slice at key. fmt.Println(m["fish"]) // Loop over string slice at key. for i := range m["fish"] { fmt.Println(i, m["fish"][i]) } } Output [black brown] [orange red] 0 orange 1 red

Some research, Markov. On the Golang site we find an example implementation of a Markov chain. A core data structure for this is a map of string slices.

Tip: In the Markov chain algorithm, each prefix is used as a key to a slice of suffixes (a string slice).

Quote: A chain consists of a prefix and a suffix. Each prefix is a set number of words, while a suffix is a single word. A prefix can have an arbitrary number of suffixes.

Generating arbitrary text:

With append, we can add elements to a string slice in a map. And with delete we can remove elements. Len will return the element count.SliceSlice: len

In Go, common things like a map that contains string slices are important to master. More complex things like chans are nice, but often used less.
Dot Net Perls
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to