//start:正数 - 在字符串的指定位置开始,超出字符串长度强制把start变为字符串长度 // 负数 - 在从字符串结尾的指定位置开始 // 0 - 在字符串中的第一个字符处开始 //length:正数 - 从 start 参数所在的位置返回 // 负数 - 从字符串末端返回 func Substr(str string, start, length int) string { if length == 0 { return "" } rune_str := []rune(str) len_str := len(rune_str) if start < 0 { start = len_str + start } if start > len_str { start = len_str } end := start + length if end > len_str { end = len_str } if length < 0 { end = len_str + length } if start > end { start, end = end, start } return string(rune_str[start:end]) }