我需要在相对路径中提取第一个目录的名字。
我知道我可以去做
relPath := "a/b/c/file.so"
splitPath := strings.Split(relPath, string(os.PathSeparator))
rootDirName := splitPath[0]
有更好的方法吗?
答案 0 :(得分:3)
如果您要问是否有一种方法可以使用1个标准Go功能:我不知道。
另一种方法是:
relPath := "a/b/c/file.so"
i := strings.Index(relPath, string(os.PathSeparator))
rootDirName := relPath[:i]
或者如果路径完全不包含/
:
relPath := "a/b/c/file.so"
i := strings.Index(relPath, string(os.PathSeparator))
rootDirName := ""
if i != -1 {
rootDirName = relPath[:i]
}
这样做的好处是不必拆分整个字符串,因此在较长的路径上可能会更快一些。