| 1234567891011121314151617181920212223 |
- // 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
- }
|