go沒有原生的字符串截取函數,可是能夠本身手寫一個,並處理超出索引和支持倒數取值函數
func Substr(str string, start, length int) string { // start截取開始的索引, length截取長度 rs := []rune(str) rl := len(rs) end := 0 // 支持負數取值,若是爲負數則倒數開始取值 if start < 0 { start = rl - 1 + start } // end 就是開始的位置加上長度等於結束的索引位置 end = start + length if start > end { start, end = end, start } if start < 0 { start = 0 } if start > rl { start = rl } if end < 0 { end = 0 } if end > rl { end = rl } return string(rs[start:end]) }