第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在 Go 中設(shè)置全局條件變量

在 Go 中設(shè)置全局條件變量

Go
慕運維8079593 2021-09-13 16:50:38
我想根據(jù) ENV 變量的值在全局包級別在 Go 中有條件地解析和設(shè)置一個變量,這樣我就不必每次在實用程序函數(shù)中都檢查它(因為變量將被聲明運行時一次)。比如我要完成的是(Go偽代碼):import (    "fmt"    "os"    "strconv")// This works to read the value of MYVAR (=true/false)var myvar string = os.Getenv("MYVAR")// Apparently this is too much for Govar myvarbool, _ = strconv.ParseBool(myvar)// Utility function to check for valuefunc mycheck() {    if myvarbool {        fmt.Print("MYVAR is true")    }}這是一個庫包,所以沒有 main() 函數(shù)來做這種設(shè)置,但我希望能夠在庫中的其他函數(shù)中使用 mycheck(),并且不想閱讀并在每次調(diào)用 mycheck() 時解析 MYVAR。
查看完整描述

3 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗 獲得超5個贊

完成您要執(zhí)行的操作的一種方法是在 init() 函數(shù)中處理環(huán)境變量,因此可以使用以下方法:


package main


import (

    "fmt"

    "os"

    "strconv"

)


var (

    myvar string = os.Getenv("MYVAR")

    myvarbool bool

)


func init() {

    myvarbool, _ = strconv.ParseBool(myvar)

}


// Utility function to check for value

func mycheck() {

    if myvarbool {

        fmt.Print("MYVAR is true")

    }

}


查看完整回答
反對 回復(fù) 2021-09-13
?
至尊寶的傳說

TA貢獻(xiàn)1789條經(jīng)驗 獲得超10個贊

我不確定您遇到了什么問題,您的 OP 代碼有效,您也可以將其放在一行中,例如:

var myvarbool, _ = strconv.ParseBool(os.Getenv("MYVAR"))


查看完整回答
反對 回復(fù) 2021-09-13
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗 獲得超4個贊

在實際考慮了幾分鐘之后,我意識到我可以創(chuàng)建一個包裝函數(shù)來完成這項工作,然后調(diào)用它(同樣,主要是偽代碼,無需額外檢查):


var myenvbool bool = myenv("MYVAR")


func myenv(envvar string) bool {

    myenvvalue := os.Getenv(envvar)

    myenvbool, _ := strconv.ParseBool(myenvvalue)

    return myenvbool

}


func checkenv() {

    if myenvbool {

        fmt.Print("myenvbool is true")

    }

}


查看完整回答
反對 回復(fù) 2021-09-13
  • 3 回答
  • 0 關(guān)注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號