寫一個go的字符串截取函數

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])
}
相關文章
相關標籤/搜索