context.go
func (x *Context) RoutePattern() string {
	routePattern := strings.Join(x.RoutePatterns, "")
	return strings.Replace(routePattern, "/*/", "/", -1)
}
func (x *Context) RoutePattern() string {
	routePattern := strings.Join(x.RoutePatterns, "")
	return strings.Replace(routePattern, "/*/", "/", -1)
}
func ( x * Context ) RoutePattern ( ) string { routePattern := strings . Join ( x . RoutePatterns , " " ) return strings . Replace ( routePattern , " " , " " , - 1 ) }
// RoutePattern builds the routing pattern string for the particular
// request, at the particular point during routing. This means, the value
// will change throughout the execution of a request in a router. That is
// why its advised to only use this value after calling the next handler.
//
// For example,
//
//   func Instrument(next http.Handler) http.Handler {
//     return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
//       next.ServeHTTP(w, r)
//       routePattern := chi.RouteContext(r.Context()).RoutePattern()
//       measure(w, r, routePattern)
//   	 })
//   }
RoutePattern builds the routing pattern string for the particular request at the particular point during routing . This means the value will change throughout the execution of a request in a router . That is why its advised to only use this value after calling the next handler . For example func Instrument ( next http . Handler ) http . Handler { return http . HandlerFunc ( func ( w http . ResponseWriter r * http . Request ) { next . ServeHTTP ( w r ) routePattern : = chi . RouteContext ( r . Context () ) . RoutePattern () measure ( w r routePattern ) } ) }