私はNode.jsからGoに移動します。ノードで使用する構造体がGoで安全であるかどうか、同じことを達成するためにもっと慣用的な方法があるかどうかについては懸念しています。私はEchoフレームワークを使用しており、コンテキストオブジェクト内で使用できるルート固有の構造体を設定したいと考えています。私はミドルウェア内のすべての呼び出しのための構造体を生成することができますが、それを行うには高価です。代わりに、構造体を外側のfuncに1回セットし、外側の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に問題を引き起こすでしょうか?同じことを達成するより効率的な方法はありますか?私は、ミドルウェアが呼び出されるたびに構造体のコピーが作成されたと仮定します。
慣用的な方法の1つは、フレームワークを使用していないhttps://www.nicolasmerouze.com/build-web-framework-golang/ –