a:=[]rune("/storage/emulated/0/Custom_Scripts/Golang/")
b:=[]rune("/storage/emulated/0/")
有两个切片 a && b,在循环中我们应该从第二个切片 $b 中取出每个元素并将其与第一个切片 $a 中的元素进行比较,如果它们相同,那么我们将从第一个切片 $a 解决方案应该没有任何包,除了 fmt(仅用于打印最终数组)并通过两种方式: 使用循环的拳头 第二个地图
尝试用这种方式释放它,但我遇到了超出范围的恐慌,有人可以帮助我吗?
package main import( "fmt" ) func main() { fileMeta := []rune("/storage/emulated/0/Custom_Scripts/Golang/") delChr := []rune("/storage/emulated/0") for i, j := range fileMeta { for _, m := range delChr { if m == j { //fileMeta[i] = "" fileMeta = append(fileMeta[:i], fileMeta[i+1:]...) } } } fmt.Println(fileMeta) }
我不会重新发明轮子:
package main import ( "fmt" "strings" ) func main() { fileMeta := []rune("/storage/emulated/0/Custom_Scripts/Golang/") delChr := []rune("/storage/emulated/0") fm := string(fileMeta) pfx := string(delChr) if tail := strings.TrimPrefix(fm, pfx); len(tail) != len(fm) { fileMeta = []rune(tail) } fmt.Println(fileMeta, string(fileMeta)) }
顺便说一句,您真的需要在[]rune
s上进行操作吗?对于大多数应用程序来说这是不自然的——为什么不立即使用正确的字符串呢?