我正在從Node.js轉向Go,我擔心在Node中使用的構造是否可以安全地在Go中執行,以及是否有更通俗的方式來完成相同的事情。我正在使用Echo框架,並且想要設置將在上下文對象中可用的路由特定結構。我可以爲中間件內的每個調用生成結構,但這樣做的代價很高。相反,我在外部func中設置了一次結構,然後返回一個指向外部func中結構的內部func。我的希望是,我只需要花費一次代價,然後在每次調用時都擁有與我的路線相關的正確結構。安全地從內部函數引用外部函數中的值?
e.POST(path, POST.GenericPostHandler, func(next echo.HandlerFunc) echo.HandlerFunc {
operation := getOperationMap(path)
return func(c echo.Context) error {
c.Set("op", operation)
return next(c)
}
})
這段代碼有什麼問題嗎?它會引起GC問題嗎?有沒有更有效的方法來完成同樣的事情?我假設每次調用中間件時都會創建一個結構體的副本。
其中一種慣用的方式是不使用框架https://www.nicolasmerouze.com/build-web-framework-golang/ –