code: func splitPath(path string) []string {
  	if path[0] == '/' {
  		path = path[1:]
  	}
  	// Count parts to avoid growing slice.
  	var n uint16
  	for i := 0; i < len(path); i++ {
  		n++
  		p := strings.IndexByte(path[i:], '/')
  		if p == -1 {
  			break
  		}
  		if p == len(path)-1 { // Also count trailing slash.
  			n++
  		}
  		i = p + i
  	}
  	s := make([]string, 0, n)
  	for {
  		p := strings.IndexByte(path, '/')
  		if p == -1 {
  			s = append(s, path)
  			break
  		}
  		s = append(s, path[:p])
  		path = path[p+1:]
  	}
  	return s
  }
docs: // splitPath returns a slice of path parts (divided by '/').
  //
  // Example:
  //	splitPath("/one/two") == []string{"one", "two"}
  //	splitPath("/one/two/") == []string{"one", "two", ""}