MST

星途 面试题库

面试题:Go中如何在context中携带自定义数据用于网络请求上下文

在Go语言里,使用context管理网络请求上下文携带时,假设你需要在上下文里携带一个用户ID(string类型),请写出具体的代码实现,包含创建context、携带数据、在后续函数中获取数据的过程。
36.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "context"
    "fmt"
)

const userIDKey = "userID"

func main() {
    // 创建context并携带数据
    ctx := context.WithValue(context.Background(), userIDKey, "123456")

    // 调用后续函数获取数据
    processRequest(ctx)
}

func processRequest(ctx context.Context) {
    // 获取数据
    userID, ok := ctx.Value(userIDKey).(string)
    if ok {
        fmt.Printf("User ID: %s\n", userID)
    } else {
        fmt.Println("User ID not found in context")
    }
}