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  }