1 回答

TA貢獻1798條經(jīng)驗 獲得超3個贊
tl;dr該Keys
字段支持 Gin 的 Contextcontext.Context
接口實現(xiàn)作為請求范圍的鍵/值載體。
我認為 Context.Keys 不是由查詢參數(shù)填充的。
正確的。Context.Keys
與查詢參數(shù)無關(guān)。查詢參數(shù)可用于Context.Query
.
相反Keys
,結(jié)構(gòu)字段上的文檔顯示:
Keys 是專門用于每個請求上下文的鍵/值對。
Set 用于專門為此上下文存儲新的鍵/值對。如果之前沒有使用它,它也會延遲初始化 c.Keys。
因此該字段類似于context
包的Context.WithValue
和Context.Value
,例如請求范圍的參數(shù)。Gin 的上下文Keys
是存儲原始鍵/值對的導出映射。諸如此類的方法GetBool
很方便,因為您不必interface{}
自己對值進行類型斷言。
與其他 Web 框架不同,Gin 的 Context 不包裝context.Context
值(除了c.Request.Context
),而是直接實現(xiàn)接口。這包括Value
方法本身,它也訪問底層Keys
字段。
順便說一句,與標準 libcontext
實現(xiàn)的一個重要區(qū)別是context.Context
接受interface{}
鍵,而 Gin 的 Context 只接受string
鍵。
- 1 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報