不用接口,不用结构体,在单纯的方法中,怎样获取iris.Context?正常是这么写的functest(ctxiris.Context){ctx.URLParam("name")}但如果不给方法传参数应该怎么写?试过下面的,报错。难道要把context作为全局变量去调用吗?functest(){varctxiris.Contextctx.URLParam("name")}
2 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
ctxiris.Context这个对象是在HTTPServer接受到请求后构建的,之后解析你注册的路由找到路由对应的方法,并传入参数。所有不存在单纯在方法中提取这个参数。
守着星空守着你
TA贡献1799条经验 获得超8个赞
一般像这种不太建议你这么做,要么直接传参数进去,要么使用context.Context包携带值进去typectxKeybytevaririsCtxKeyctxKeyfuncTestContext(ctxcontext.Context){ifictx,ok:=ctx.Value(irisCtxKey).(*iris.Context);ok{val:=ictx.URLParam("k")}}funcmain(){ctx:=context.Background()ctx=context.WithValue("k1",1)ctx=context.WithValue(irisCtxKey,irisCtx)//从请求中来TestContext(ctx)}
添加回答
举报
0/150
提交
取消