亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

傳遞上下文的最佳方式

傳遞上下文的最佳方式

Go
青春有我 2022-12-05 17:15:42
我已經對上下文進行了大量研究,但似乎找不到普遍接受的答案,而且我是Go的新手。在我當前的代碼中var ctx = context.Background(),它被用于不同的地方。我擔心的是,因為它是一個全局變量,難道我的所有代碼都不修改同一個上下文嗎?.是的,我知道上下文是請求范圍的。這是我的上下文代碼的一部分。var ctx = context.Background()var db *firestore.Clientvar auth *aut.Clientfunc init() {    app, err := firebase.NewApp(ctx, nil)    if err != nil {        log.Fatal(err)    }    db, err = app.Firestore(ctx)    if err != nil {        log.Fatal(err)    }    auth, err = app.Auth(ctx)    if err != nil {        log.Fatal(err)    }}func SetRate(r int) (err error) {    //TODO: create last updated field    _, err = db.Collection("Rate").Doc("rate").Set(ctx, map[string]int{"USDT": r})    if err != nil {        log.Println(err)        return err    }    return nil}請盡量不要使用過于復雜的詞語來描述一個術語。
查看完整描述

2 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

go在函數之間傳遞上下文是一種公認的做法。通常,每個函數的第一個參數都是 ifcontext類型。我已經看到,每當一個上下文被傳遞下來并且在方法范圍內有一些用例時,就會從父上下文創建一個新的上下文。



查看完整回答
反對 回復 2022-12-05
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

最好的做法是在函數內部創建一個上下文,并根據需要在函數之間傳遞它,而不是讓一個上下文在整個包中共享。對于 HTTP 服務器之類的東西,您通常會看到每個傳入 API 調用的唯一上下文。



查看完整回答
反對 回復 2022-12-05
  • 2 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號