func isSlash(r rune) bool {
return r == '' || r == '/'
}
func main() {
s := "C:WindowsSystem32"
i := strings.IndexFunc(s, isSlash)
fmt.Printf("%vn", i) // 2
}
------------------------------------------------------------
// 返回 s 中最后一个满足 f(rune) 的字符的字节位置。
// 如果没有满足 f(rune) 的字符,则返回 -1
func LastIndexFunc(s string, f func(rune) bool) intfunc isSlash(r rune) bool {
return r == '' || r == '/'
}func main() {
s := "C:WindowsSystem32"
i := strings.LastIndexFunc(s, isSlash)
fmt.Printf("%vn", i) // 10
}
------------------------------------------------------------
// Trim 将删除 s 首尾连续的包含在 cutset 中的字符
func Trim(s string, cutset string) stringfunc main() {
s := " Hello 世界! "
ts := strings.Trim(s, " Helo!")
fmt.Printf("%qn", ts) // "世界"
}
------------------------------------------------------------
// TrimLeft 将删除 s 头部连续的包含在 cutset 中的字符
func TrimLeft(s string, cutset string) stringfunc main() {
s := " Hello 世界! "
ts := strings.TrimLeft(s, " Helo")
fmt.Printf("%qn", ts) // "世界! "
}
------------------------------------------------------------
// TrimRight 将删除 s 尾部连续的包含在 cutset 中的字符
func TrimRight(s string, cutset string) stringfunc main() {
s := " Hello 世界! "
ts := strings.TrimRight(s, " 世界!")
fmt.Printf("%qn", ts) // " Hello"
}
------------------------------------------------------------
// TrimSpace 将删除 s 首尾连续的的空白字符
func TrimSpace(s string) string
func main() {
s := " Hello 世界! "
ts := strings.TrimSpace(s)
fmt.Printf("%qn", ts) // "Hello 世界!"
}
------------------------------------------------------------
// TrimPrefix 删除 s 头部的 prefix 字符串
// 如果 s 不是以 prefix 开头,则返回原始 s
func TrimPrefix(s, prefix string) stringfunc main() {
s := "Hello 世界!"
ts := strings.TrimPrefix(s, "Hello")
fmt.Printf("%qn", ts) // " 世界"
}
------------------------------------------------------------
// TrimSuffix 删除 s 尾部的 suffix 字符串
// 如果 s 不是以 suffix 结尾,则返回原始 s
func TrimSuffix(s, suffix string) string
func main() {
s := "Hello 世界!!!!!"
ts := strings.TrimSuffix(s, "!!!!")










