a:=[]rune("/storage/emulated/0/Custom_Scripts/Golang/")
b:=[]rune("/storage/emulated/0/")
有两个切片 a && b,在循环中我们应该从第二个切片 $b 中获取每个元素并将其与第一个切片 $a 中的元素进行比较,如果它们相同,那么我们将从第一个切片中删除该元素$a
尝试用这种方式释放它,但我因为超出范围而感到恐慌,有人可以帮助我吗?
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
进行手术吗?对于大多数应用程序来说这是不自然的——为什么不立即使用正确的字符串呢?