Files
the-way-to-go_ZH_CN/eBook/exercises/chapter_7/insert_slice.go
2017-02-11 12:26:05 +08:00

24 lines
580 B
Go
Executable File

// insert_slice.go
package main
import (
"fmt"
)
func main() {
s := []string{"M", "N", "O", "P", "Q", "R"}
in := []string{"A", "B", "C"}
res := InsertStringSlice(s, in, 0) // at the front
fmt.Println(res) // [A B C M N O P Q R]
res = InsertStringSlice(s, in, 3) // [M N O A B C P Q R]
fmt.Println(res)
}
func InsertStringSlice(slice, insertion []string, index int) []string {
result := make([]string, len(slice)+len(insertion))
at := copy(result, slice[:index])
at += copy(result[at:], insertion)
copy(result[at:], slice[index:])
return result
}