How to get only first 7 characters from the String?

I have a name field from which I am only trying to get the first 7 letters, and truncate the remaining.

I tried this: 
SurName := strings.TrimSpace(Name)
NameTruncate := SurName[:7]

but I am getting if the user name has than 7 characters in it. 
panic: runtime error: slice bounds out of range [:7] with length 5

Any recommendation?

func min(a, b int) int {
 if a < b {
   return a
 }
 return b
}

SurName := strings.TrimSpace(Name)
NameTruncate := SurName[:min(len(SurName, 7))]
2 Likes

A slightly different approach (https://play.golang.org/p/ktha5bpocV-)

package main

import (
“fmt”
“strings”
)

func nameSlice(name string, desiredLength int) string {
if len(name) < desiredLength {
return name[:len(name)]
}
return name[:desiredLength]
}

func main() {

var desiredLength int
var Name string
var SurName string

desiredLength = 4
Name = " my name  "
SurName = strings.TrimSpace(Name)
fmt.Println(nameSlice(SurName, desiredLength))

desiredLength = 20
Name = " my long name  "
SurName = strings.TrimSpace(Name)
fmt.Println(nameSlice(SurName, desiredLength))

}