go语言context保存上下文

2023-10-26

 contxt保存上下文适合全局参数传递,而普通的参数传递就没必要用context,因为不好维护

 关于context具体用法可以参考:https://studygolang.com/articles/23247?fr=sidebar

package main

import (
	"context"
	"fmt"
)

func processPassValue(ctx context.Context){
	ret, ok := ctx.Value("trace_id").(int)
	if !ok {
		fmt.Println("取值trace_id出错!")
	}
	fmt.Println(ret)
	sessino_id, ok := ctx.Value("session_id").(string)
	if !ok {
		fmt.Println("取值session_id出错!")
	}
	fmt.Println(sessino_id)
}
func main(){
	//context是树形结构,context.Background()主要用于main函数、初始化以及测试代码中,作为Context这个树结构的最顶层的Context
	ctx := context.WithValue(context.Background(),"trace_id",123456)
	ctx = context.WithValue(ctx,"session_id","fgadgsdfsdfsdfasfd")
	processPassValue(ctx)
}

结果:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

go语言context保存上下文 的相关文章

  • 复制切片的通用方法

    我需要复制切片 以及底层数组的一部分 以便调用者不会改变数组的原始元素 我想我可以编写一个函数来对特定类型的数组执行此操作 func duplicateSliceOfSomeType sliceOfSomeType SomeType Som
  • 在 Docker 中使用私有模块构建 Go 应用程序

    我正在尝试在依赖于私有子模块的 docker 容器中构建一个 go 项目 我本来希望 mount type ssh会将我的 ssh 凭据传递给容器并且它会起作用 目前我可以在本地构建 只需制作GOPRIVATE变量集和git config
  • Go(lang): 如何使用 PPROF 堆分析来查找内存泄漏?

    我正在尝试使用 pprof 来验证内存泄漏 能否解释一下如何读取您在以下位置找到的堆配置文件 http localhost 6060 debug pprof heap debug 1 另外 通过键入web启动后命令go tool pprof
  • 如何列出已安装的 go 软件包

    据我所知go distribution带有某种package manager After go 1 4 1我已经运行的安装go help为了找到任何能够列出本地安装的子命令go packages 但不幸的是没有 那么该怎么做呢 goinst
  • 如何展平嵌套 JSON

    尝试将嵌套的 json 响应从 2 层深度压平到 1 层 这是我在 Go Playground 上的工作代码 http play golang org p kHAYuZUTko http play golang org p kHAYuZUT
  • Golang - 如何在特定时间执行函数

    我需要在一天中的特定时间运行一个函数 例如 0010 0610 1210 1810 我目前的方法使用自动收报机for range time Tick 21600 time Second 我以这些时间间隔之一 例如 1210 手动启动该程序
  • 为什么这里会出现僵局

    我想了解 golang 通道是如何工作的 我读了一本关于go语言的书 发现了下面的例子 package main import fmt Send the sequence 2 3 4 to returned channel func gen
  • 为什么Go中可以在多个return语句中重新定义err

    考虑下面的示例来说明这个问题 它只是为了解释这个问题而构建的 但我在书中以及实际项目中都看到了类似的代码 package main import strconv fmt log func main n1 err strconv Atoi 1
  • Golang xml.Unmarshal 接口类型

    使用xml我在解组非同质类型列表时遇到问题 考虑以下 XML 文档 其嵌套元素是非同质类型的列表
  • struct{} 和 struct{}{} 在 Go 中如何工作?

    我想知道 Go 中的 struct 和 struct 是什么意思 示例如下 array index struct or make map type struct struct is a keyword https golang org re
  • Go中的切片分配是否复制内存

    目的 我有一个大缓冲区 我想要一个指向缓冲区中不同位置的指针数组 切片 我在做什么 datPtrs make byte n for i 0 i
  • 如何用 Go 将多个字符串解析为模板?

    有没有像这样的简单方法template ParseFiles base html home html 但是对于字符串来说 如何从一组字符串构建模板 我有一个基本模板和一个页面模板列表 全部为字符串 我想在基本模板之上构建它们 我想出了如何合
  • 如何获取字段类型的零值

    我有一个包含许多字段的结构 我已经弄清楚如何使用反射提取字段名称 值和标签信息 我还想做的是确定字段的值是否与字段的默认值不同 目前 我有这个 有效 但有点臭 qsMap make map string interface var defa
  • 按顺序范围循环映射

    我正在寻找一种确定的方法来范围Go map为了 Go 规范 https golang org ref spec For statements陈述如下 映射的迭代顺序未指定 并且不保证从一次迭代到下一次迭代的顺序相同 如果在迭代过程中删除尚未
  • ConstantTimeByteEq 如何工作?

    在大神的密码库里 找到了这个函数ConstantTimeByteEq http golang org src pkg crypto subtle constant time go s 897 936 L17 它有什么作用 如何工作 Cons
  • 如何访问 Go 中的嵌套模块(子模块)?

    去版本 1 12 9 这是一个简单演示项目的结构 所以我们有一个模块domain 其中包含两个模块 activity and person 我想将域与主文件中的所有嵌套模块一起使用 gt 模块 go 我知道如何导入domain主要在go m
  • 使用私有 git 存储库时的 go 工作区结构

    当你不使用 github 时 我一直在尝试找出 go 代码 工作区的标准文件夹布局 结构 我可以看到如何go get在获取 github 项目时有效 但假设我自己的 git 项目不会有 github com username project
  • 如何分发仅二进制的 go 包

    我想以二进制形式分发包而不包含源代码 我的演示项目目录结构是这样的 demo greet greet go hi hi go hello hello go main go main go package main import fmt de
  • 地图中的最大元素数

    GO 中的 Map 最多可以存储多少个元素 如果我需要经常从 Map 访问数据 那么在长时间运行的程序中不断向 Map 添加项目并从中检索项目是一个好主意吗 除了map length类型的最大值之外 map中的元素数量没有理论上的限制 in
  • 通过 API Gateway 使用表单数据将图像发布到 Lambda 函数会导致文件无效

    I ve a 用 Go 编写的 Lambda 函数 https github com mhausenblas imgn blob master functions app uploadimg main go应该允许图像文件上传 通过 HTM

随机推荐

  • java 动态生成 visio----aspose.diagram for java

    最近在鼓捣java 如何生成visio图表 苦于没有API 找到了aspose这个神器 下载试用版本之后 发现最多只能生成10个元素 而且有水印 下面尝试如何去掉水印与元素限制 本文章所涉及的软件均可从网上获取 但是只能用于学习之用 不能用
  • idea使用http客户端上传文件

    controller 文件上传 param file return PostMapping value fileUpload ResponseBody public String uploadSkuImage RequestParam fi
  • 初始C语言——从大到小排序

    三个数的排序 三个数之间两两比较类似于三个数中显示最大值 两两比较 但是有一个问题 最大值问题只需要输出最大值即可而排序问题则还要排序 那么我们是否可以确定三个位置x y z将最大值依次赋值给x y z确保输出时x y z的位置是从左到右输
  • 真二次元!动漫形象风格迁移

    点击上方 机器学习与生成对抗网络 关注星标 获取有趣 好玩的前沿干货 文章 机器之心 一张输入人脸图像 竟能生成多样化风格的动漫形象 伊利诺伊大学香槟分校的研究者做到了 他们提出的全新 GAN 迁移方法实现了 一对多 的生成效果 在 GAN
  • 【JVM】JVM-codecache内存区域介绍

    1 概述 转载 https leokongwq github io 2016 10 12 maven test html 2 JVM codecache内存区域介绍 大家都知道JVM在运行时会将频繁调用方法的字节码编译为本地机器码 这部分代
  • 网络层_数据平面_四(题目完成)

    网络 引入网络层学习 分组交换 虚电路VC 数据报网络 CIDR DHCP 路由器 IP数据报格式 IPv4 IPv6 过渡策略 双栈 隧道 特殊IP地址即内部IP地址 流表中匹配 动作 计算机自顶向下方法 第七版课后习题及答案 正在更新中
  • 论文解读:Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentati

    论文解读 Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentation 一 动机 Knowledge in
  • C++ 智能指针我得用用看

    文章目录 0 前言 0 1 使用智能指针的原因 0 2 智能指针和普通指针的区别 什么是智能指针 1 auto ptr 1 1 基本说明 1 2 例子 chestnut 1 3 使用建议 3 unique ptr 3 1 实现原理 3 2
  • [游戏开发]网络同步方式

    状态同步 优点 数据在服务器运算 客户端接收到的数据一定准确 防止数据作弊 角色数据在服务器 客户端只上传操作 想作弊没门 网络波动不敏感 多端表现可以不一致 重视数值准确 缺点 前后端数据包体大 服务器压力比较重 计算量 传输量 研发特点
  • java中冒号(:)的用法

    java中冒号的用法大概可以分为四种 用在for循环中 用来遍历数组 集合 中的元素 for x nums print x 用在三目运算符中 表达式 执行语句1 执行语句2 这里的冒号是用来根据前面表达式的值正确与否 选择后面对应执行语句的
  • 多线程实现的方式

    1 继承Thread类 通过继承Thread类 并重写run方法 public class MyThread extends Thread public static void main String args MyThread myThr
  • sudo vim找不到命令(Ubuntu16.04)

    在使用vim配置环境变量时 提示 sudo vim 找不到命令 原因是因为没有安装vim 下面我们就来在终端进行安装一下 前提是需要连上网了 没有联网不在此考虑范围 1 进入终端 Ctrl Alt T 出现终端窗口 2 输入命令 sudo
  • Linux:WSL 下 CTS 环境搭建及无法识别设备问题

    WSL Windows Subsystem for Linux 简称WSL 是一个在Windows 10上能够运行原生Linux二进制可执行文件 ELF格式 的兼容层 它是由微软与Canonical公司合作开发 其目标是使纯正的Ubuntu
  • mysql [Err] 1118 - Row size too large (> 8126).

    错误代码 1118 Row size too large gt 8126 Changing some columns to TEXT or BLOB may help In current row format BLOB prefix of
  • 获取服务器系统,获取服务器操作系统

    获取服务器操作系统 内容精选 换一换 服务器安装上架 服务器基础参数配置 安装操作系统等操作请参见 Atlas 500 Pro 智能边缘服务器 用户指南 型号 3000 安装操作系统完成后 配置业务网口IP地址 请参见配置网卡IP地址 At
  • arduinows2812灯条程序_Arduino 控制WS2812 LED灯条

    传统的LED限制总是很多 比如需要很多的引脚 所以有一种很好的解决方案是用灯条 理论上这种灯条可以通过通讯 用一根数据总线可以控制达到无上限个数的RGB LED灯珠 并且在数量在1024以下时 延迟是不可察觉的 使用手册可查 主要功能 通过
  • Day 3 Mastering the Interface Definition Language (IDL)

    Teach Yourself CORBA In 14 Days Day 3Mastering the Interface Definition Language IDL Overview IDL Ground Rules Case Sens
  • momentJS时间加减处理

    计算最近在使用JavaScript计算时间差的时候 发现很多问题需要处理 在查看momentJS之后 发现非常容易 console log moment format YYYY MM DD HH mm ss 当前时间 console log
  • 基于nodejs的在线跑腿管理系统

    末尾获取源码 开发语言 nodejs 框架 Express 数据库 MySQL5 7 数据库工具 Navicat 11 开发软件 Hbuilder VS code 浏览器 edge 谷歌 目录 一 项目简介 二 系统功能 三 系统项目截图
  • go语言context保存上下文

    contxt保存上下文适合全局参数传递 而普通的参数传递就没必要用context 因为不好维护 关于context具体用法可以参考 https studygolang com articles 23247 fr sidebar packag