我相信Go中没有LeftStr(str,n)(最多取n个第一个字符),RightStr(str,n)(最多取n个最后一个字符)和SubStr(str,pos,n)(取pos后的第一个n个字符)函数,所以我尝试制作一个
// take at most n first characters
func Left(str string, num int) string {
if num <= 0 {
return ``
}
if num > len(str) {
num = len(str)
}
return str[:num]
}
// take at most last n characters
func Right(str string, num int) string {
if num <= 0 {
return ``
}
max := len(str)
if num > max {
num = max
}
num = max - num
return str[num:]
}
但我相信当字符串包含 unicode 字符时,这些函数会给出错误的输出。这些功能最快的解决方案是什么,使用for range循环是唯一的方法吗?
慕姐4208626
相关分类