您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“如何分析Go中的godotenv”。內容詳細易懂,對“如何分析Go中的godotenv”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“如何分析Go中的godotenv”的知識吧。
Go 中的godotenv
簡介
twelve-factor應用提倡將配置存儲在環境變量中。任何從開發環境切換到生產環境時需要修改的東西都從代碼抽取到環境變量里。 但是在實際開發中,如果同一臺機器運行多個項目,設置環境變量容易沖突,不實用。godotenv庫從.env文件中讀取配置, 然后存儲到程序的環境變量中。在代碼中可以使用讀取非常方便。godotenv源于一個 Ruby 的開源項目dotenv。
快速使用
第三方庫需要先安裝:
$ go get github.com/joho/godotenv
后使用:
package mainimport ( "fmt" "log" "os" "github.com/joho/godotenv")func main() { err := godotenv.Load() if err != nil { log.Fatal(err) } fmt.Println("name: ", os.Getenv("name")) fmt.Println("age: ", os.Getenv("age"))}
然后在可執行程序相同目錄下,添加一個.env文件:
name = dj
age = 18
運行程序,輸出:
name: dj
age: 18
可見,使用非常方便。默認情況下,godotenv讀取項目根目錄下的.env文件,文件中使用key = value的格式,每行一個鍵值對。 調用godotenv.Load()即可加載,可直接調用os.Getenv("key")讀取。os.Getenv是用來讀取環境變量的:
package mainimport ( "fmt" "os")func main() { fmt.Println(os.Getenv("GOPATH"))}
高級特性
自動加載
如果你有程序員的優良傳統——懶,你可能連Load方法都不想自己調用。沒關系,godotenv給你懶的權力!
導入github.com/joho/godotenv/autoload,配置會自動讀取:
package mainimport ( "fmt" "os" _ "github.com/joho/godotenv/autoload")func main() { fmt.Println("name: ", os.Getenv("name")) fmt.Println("age: ", os.Getenv("age"))}
注意,由于代碼中沒有顯式用到godotenv庫,需要使用空導入,即導入時包名前添加一個_。
看autoload包的源碼,其實就是庫幫你調用了Load方法:
// src/github.com/joho/godotenv/autoload/autoload.gopackage autoload
/*You can just read the .env file on import just by doingimport _ "github.com/joho/godotenv/autoload"And bob's your mother's brother*/import "github.com/joho/godotenv"func init() { godotenv.Load()}
關于如何分析Go中的godotenv就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。