一天一个Golang包,慢慢学习之“path”
上一篇学习了bytes包 ,内容还是有点多,花的时间也多了一点。所以今天补充点小内容-path包。当然,path还有子包:filepath,这个下次再继续。
阅读文档: 官方pkg地址:https://golang.org/pkg/path/
包方法
func Base(path string) string // 返回最后一个元素(目录或文件)的路径
1 2 3 4 5 6 7 8 fmt.Println(path.Base("/a/b/" )) fmt.Println(path.Base("/a/b" )) fmt.Println(path.Base("./a/b" )) fmt.Println(path.Base("../a/b" )) fmt.Println(path.Base("/" )) fmt.Println(path.Base("./" )) fmt.Println(path.Base("." )) fmt.Println(path.Base("" ))
func Clean(path string) string // 返回最洁净的路径,在path比较复杂的情况下使用,可以简化path。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 paths := []string { "a/c" , "a//c" , "a/c/." , "a/c/b/.." , "/../a/c" , "/../a/b/../././/c" , "" , } for _, p := range paths { fmt.Printf("Clean(%q) = %q\n" , p, path.Clean(p)) }
func Dir(path string) string // 返回元素(目录或文件)的目录路径
1 2 3 4 5 6 fmt.Println(path.Dir("/a/b/c" )) fmt.Println(path.Dir("a/b/c" )) fmt.Println(path.Dir("/a/" )) fmt.Println(path.Dir("a/" )) fmt.Println(path.Dir("/" )) fmt.Println(path.Dir("" ))
func Ext(path string) string // 返回path下文件名的后缀
1 2 3 4 fmt.Println(path.Ext("/a/b/c/bar.css" )) fmt.Println(path.Ext("/a/b/c/bar.tar.gz" )) fmt.Println(path.Ext("/" )) fmt.Println(path.Ext("" ))
func IsAbs(path string) bool // 判断path是否是绝对路径
1 2 3 fmt.Println(path.IsAbs("/dev/null" )) fmt.Println(path.IsAbs("dev/null" )) fmt.Println(path.IsAbs("./dev/null" ))
func Join(elem ...string) string // 将多个路径元素连接成一个,空元素会被忽略。
1 2 3 4 5 6 fmt.Println(path.Join("a" , "b" , "c" )) fmt.Println(path.Join("a" , "b/c" )) fmt.Println(path.Join("a/b" , "c" )) fmt.Println(path.Join("" , "" )) fmt.Println(path.Join("a" , "" )) fmt.Println(path.Join("" , "a" ))
func Match(pattern, name string) (matched bool, err error) // 判断name是否符合pattern规则,并返回err
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 fmt.Println(path.Match("abc" , "abc" )) fmt.Println(path.Match("a*" , "abc" )) fmt.Println(path.Match("a*d" , "abcd" )) fmt.Println(path.Match("a*/b" , "a/c/b" )) fmt.Println(path.Match("a/[a-f]/b" , "a/c/b" ))
func Split(path string) (dir, file string) // 返回path的目录和文件名
1 2 3 fmt.Println(path.Split("static/myfile.css" )) fmt.Println(path.Split("myfile.css" )) fmt.Println(path.Split("" ))
子包:filepath 下一篇来学习:path/filepath