日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go基础库之环境变量的获取与设置以及如何使用默认值

發布時間:2024/2/28 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go基础库之环境变量的获取与设置以及如何使用默认值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

golang 基礎庫之?go?獲取命令行參數,介紹了環境變量的獲取與設置以及如何使用默認值

環境變量的獲取與設置以及如何使用默認值

Golang 版本

1.12.1

前言

環境變量作為配置選項可以顯著簡化應用的部署,并且這些在云基礎架構中也是很常見的。

通常,本地和自動構建環境的?數據庫?連接配置是不同的。

如果配置由環境變量定義,則無需更改應用的配置文件或者程序代碼。如果環境變量沒有設置,則默認配置也是可以使用的。這樣對于開發人員就容易多了。

實現

創建?get.go?文件,代碼如下:

package mainimport ("log""os" )func main(){conStr := os.Getenv("DB_CONN")log.Printf("連接:%s\n",conStr) }

?

運行命令?export DB_CONN=db:/user@example && go run get.go

$ export DB_CONN=db:/user@example && go run get.go 2019/05/18 21:33:39 連接:db:/user@example

?

創建?lookup.go?文件,代碼如下:

package mainimport ("fmt""log""os" )func main() {key := "DB_CONN"connStr, ex := os.LookupEnv(key)if !ex {log.Printf("環境變量 %s 沒有設置\n", key)}fmt.Println(connStr) }

運行命令?unset DB_CONN && go run lookup.go

$ unset DB_CONN && go run lookup.go 2019/05/18 21:39:33 環境變量 DB_CONN 沒有設置

創建?main.go?文件,代碼如下:

package mainimport ("log""os" )func main() {key := "DB_CONN"// 設置環境變量os.Setenv(key, "postgres://as:as@example.com/pg?sslmode=verify-full")val := GetEnvDefault(key, "postgres://as:as@localhost/pg?sslmode=verify-full")log.Println("值是 :" + val)os.Unsetenv(key)val = GetEnvDefault(key, "postgres://as:as@127.0.0.1/pg?sslmode=verify-full")log.Println("默認值是 :" + val)}func GetEnvDefault(key, defVal string) string {val, ex := os.LookupEnv(key)if !ex {return defVal}return val }

運行命令?go run main.go

$ go run main.go 2019/05/18 21:42:58 值是 :postgres://as:as@example.com/pg?sslmode=verify-full 2019/05/18 21:42:58 默認值是 :postgres://as:as@127.0.0.1/pg?sslmode=verify-full

原理

環境變量的獲取和設置分別可以通過?os?包中?Getenv?和?Setenv?方法實現。方法名稱已經很明確說明了自身的功能。

但?Getenv?方法有個缺點,即使在未設置環境變量的情況下,它也返回一個空的字符串。

os?包中還有一個很有用的方法,?LookupEnv?,該方法返回兩個值,一個是變量的值,另一個則是變量在環境中是否設置的布爾值。而?LookupEnv?方法則可以克服上面?Getenv?的缺點。

當我們要判斷是否設置了環境變量以及實現一個默認環境變量的方法,都應該使用?LookupEnv?。因為如果未設置環境變量,則第二個值會返回?false

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的go基础库之环境变量的获取与设置以及如何使用默认值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。