github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/path/example_test.go (about) 1 // Copyright 2012 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package path_test 6 7 import ( 8 "fmt" 9 "path" 10 ) 11 12 func ExampleBase() { 13 fmt.Println(path.Base("/a/b")) 14 fmt.Println(path.Base("/")) 15 fmt.Println(path.Base("")) 16 // Output: 17 // b 18 // / 19 // . 20 } 21 22 func ExampleClean() { 23 paths := []string{ 24 "a/c", 25 "a//c", 26 "a/c/.", 27 "a/c/b/..", 28 "/../a/c", 29 "/../a/b/../././/c", 30 "", 31 } 32 33 for _, p := range paths { 34 fmt.Printf("Clean(%q) = %q\n", p, path.Clean(p)) 35 } 36 37 // Output: 38 // Clean("a/c") = "a/c" 39 // Clean("a//c") = "a/c" 40 // Clean("a/c/.") = "a/c" 41 // Clean("a/c/b/..") = "a/c" 42 // Clean("/../a/c") = "/a/c" 43 // Clean("/../a/b/../././/c") = "/a/c" 44 // Clean("") = "." 45 } 46 47 func ExampleDir() { 48 fmt.Println(path.Dir("/a/b/c")) 49 fmt.Println(path.Dir("a/b/c")) 50 fmt.Println(path.Dir("/a/")) 51 fmt.Println(path.Dir("a/")) 52 fmt.Println(path.Dir("/")) 53 fmt.Println(path.Dir("")) 54 // Output: 55 // /a/b 56 // a/b 57 // /a 58 // a 59 // / 60 // . 61 } 62 63 func ExampleExt() { 64 fmt.Println(path.Ext("/a/b/c/bar.css")) 65 fmt.Println(path.Ext("/")) 66 fmt.Println(path.Ext("")) 67 // Output: 68 // .css 69 // 70 // 71 } 72 73 func ExampleIsAbs() { 74 fmt.Println(path.IsAbs("/dev/null")) 75 // Output: true 76 } 77 78 func ExampleJoin() { 79 fmt.Println(path.Join("a", "b", "c")) 80 fmt.Println(path.Join("a", "b/c")) 81 fmt.Println(path.Join("a/b", "c")) 82 83 fmt.Println(path.Join("a/b", "../../../xyz")) 84 85 fmt.Println(path.Join("", "")) 86 fmt.Println(path.Join("a", "")) 87 fmt.Println(path.Join("", "a")) 88 89 // Output: 90 // a/b/c 91 // a/b/c 92 // a/b/c 93 // ../xyz 94 // 95 // a 96 // a 97 } 98 99 func ExampleMatch() { 100 fmt.Println(path.Match("abc", "abc")) 101 fmt.Println(path.Match("a*", "abc")) 102 fmt.Println(path.Match("a*/b", "a/c/b")) 103 // Output: 104 // true <nil> 105 // true <nil> 106 // false <nil> 107 } 108 109 func ExampleSplit() { 110 split := func(s string) { 111 dir, file := path.Split(s) 112 fmt.Printf("path.Split(%q) = dir: %q, file: %q\n", s, dir, file) 113 } 114 split("static/myfile.css") 115 split("myfile.css") 116 split("") 117 // Output: 118 // path.Split("static/myfile.css") = dir: "static/", file: "myfile.css" 119 // path.Split("myfile.css") = dir: "", file: "myfile.css" 120 // path.Split("") = dir: "", file: "" 121 }