Prechádzať zdrojové kódy

Adding MustGet method. Updating README.

Nick Gerakines 11 rokov pred
rodič
commit
abe076b8f8
2 zmenil súbory, kde vykonal 18 pridanie a 9 odobranie
  1. 7 7
      README.md
  2. 11 2
      gin.go

+ 7 - 7
README.md

@@ -275,14 +275,14 @@ func main() {
 func Logger() gin.HandlerFunc {
     return func(c *gin.Context) {
         t := time.Now()
-        
+
         // Set example variable
         c.Set("example", "12345")
-        
+
         // before request
-        
+
         c.Next()
-        
+
         // after request
         latency := time.Since(t)
         log.Print(latency)
@@ -292,10 +292,10 @@ func Logger() gin.HandlerFunc {
 func main() {
     r := gin.New()
     r.Use(Logger())
-    
+
     r.GET("/test", func(c *gin.Context){
-        example := r.Get("example").(string)
-        
+        example := c.MustGet("example").(string)
+
         // it would print: "12345"
         log.Println(example)
     })

+ 11 - 2
gin.go

@@ -8,6 +8,7 @@ import (
 	"fmt"
 	"github.com/julienschmidt/httprouter"
 	"html/template"
+	"log"
 	"math"
 	"net/http"
 	"path"
@@ -280,8 +281,7 @@ func (c *Context) Set(key string, item interface{}) {
 	c.Keys[key] = item
 }
 
-// Returns the value for the given key.
-// It panics if the value doesn't exist.
+// Get returns the value for the given key or an error if the key does not exist.
 func (c *Context) Get(key string) (interface{}, error) {
 	if c.Keys != nil {
 		item, ok := c.Keys[key]
@@ -292,6 +292,15 @@ func (c *Context) Get(key string) (interface{}, error) {
 	return nil, errors.New("Key does not exist.")
 }
 
+// MustGet returns the value for the given key or panics if the value doesn't exist.
+func (c *Context) MustGet(key string) interface{} {
+	value, err := c.Get(key)
+	if err != nil || value == nil {
+		log.Panicf("Key %s doesn't exist", key)
+	}
+	return value
+}
+
 /************************************/
 /******** ENCOGING MANAGEMENT********/
 /************************************/