亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Go 使用os包操作環(huán)境變量的方法

 更新時間:2024年07月30日 11:08:17   作者:經(jīng)云  
環(huán)境變量通常在程序啟動時就已設(shè)置好,在需要的時候隨時讀取,Go使用簡單的幾個函數(shù)就可以對環(huán)境變量進(jìn)行增刪查改,本文給大家介紹Go 使用os包操作環(huán)境變量的方法,感興趣的朋友跟隨小編一起看看吧

Go標(biāo)準(zhǔn)庫提供了非常多實(shí)用的功能,其中就包含了操作環(huán)境變量。

環(huán)境變量是操作系統(tǒng)中用于存儲配置信息的變量,這些信息可以在不同的程序之間共享。它們通常用于存儲系統(tǒng)的全局設(shè)置,如臨時文件目錄、路徑、默認(rèn)的shell、語言設(shè)置等。

環(huán)境變量通常在程序啟動時就已設(shè)置好,在需要的時候隨時讀取。Go使用簡單的幾個函數(shù)就可以對環(huán)境變量進(jìn)行增刪查改。下面分別講解。

一、列出所有環(huán)境變量

func Environ() []string

Environ 返回一個字符串切片的副本,這些字符串代表環(huán)境變量,形式為 “key=value”。

示例:

package main
import (
	"fmt"
	"os"
)
func main() {
	for _, value := range os.Environ() {
		fmt.Println(value)
	}
}

輸出如下(環(huán)境變量的一部分):

GOBIN=d:\Program files\Go\bin"
GOFLAGS=-mod=vendor
GOMODCACHE=D:\go\pkg\mod
GOPATH=D:\go
GOPROXY=https://goproxy.io,direct
...

二、清除所有環(huán)境變量

func Clearenv()

它會在程序運(yùn)行時刪除所有環(huán)境變量,程序結(jié)束后,系統(tǒng)環(huán)境變量不會變化,放心,還在。有些地方說這個命令很危險(xiǎn),其實(shí)沒什么。

示例:

package main
import (
	"fmt"
	"os"
)
func main() {
	os.Clearenv()
	for _, value := range os.Environ() {
		fmt.Println(value)
	}
}

輸出結(jié)果為空,說明該命令起作用了。屏蔽第9行,再次運(yùn)行,系統(tǒng)環(huán)境變量再次列出,和一章節(jié)結(jié)果相同。

三、檢索環(huán)境變量

func LookupEnv(key string) (string, bool)

LookupEnv 檢索由鍵命名的環(huán)境變量的值。如果環(huán)境中有該變量,則返回值(可能為空)以及一個為真的布爾值。否則,返回的值將為空,布爾值將為假。

示例:

package main
import (
	"fmt"
	"os"
)
func main() {
	goPath, bgExist := os.LookupEnv("GOPATH")
	fmt.Println("GOPATH =", goPath, ", bgExist =", bgExist)
	luaPath, blExist := os.LookupEnv("LUAPATH")
	fmt.Println("LUAPATH =", luaPath, ", blExist =", blExist)
}

輸出如下:

GOPATH = D:\go , bgExist = true
LUAPATH =  , blExist = false

四、獲取環(huán)境變量

func Getenv(key string) string

Getenv 用于檢索由鍵命名的環(huán)境變量的值。它返回該值,如果變量不存在,則返回空字符串。要區(qū)分空值和未設(shè)置的值,請使用 LookupEnv。

示例:

package main
import (
	"fmt"
	"os"
)
func main() {
	goPath := os.Getenv("GOPATH")
	fmt.Println("GOPATH = ", goPath)
}

輸出如下:

GOPATH =  D:\go

五、設(shè)置環(huán)境變量

func Setenv(key, value string) error

Setenv 設(shè)置由鍵命名的環(huán)境變量的值。如果遇到任何錯誤,它將返回該錯誤。

示例:

package main
import (
	"fmt"
	"os"
)
func main() {
	err := os.Setenv("TESTENV", "TestValue")
	if err != nil {
		os.Exit(1)
	}
	testValue := os.Getenv("TESTENV")
	fmt.Println("TESTENV = ", testValue)
}

輸出如下:

TESTENV =  TestValue

六、刪除環(huán)境變量

func Unsetenv(key string) error

Unsetenv 刪除單個環(huán)境變量。

示例:

package main
import (
	"fmt"
	"os"
)
func main() {
	err := os.Unsetenv("TESTENV")
	if err != nil {
		os.Exit(1)
	}
	testValue := os.Getenv("TESTENV")
	fmt.Println("TESTENV = ", testValue)
}

輸出為:

TESTENV =  

七、展開環(huán)境變量

func ExpandEnv(s string) string

ExpandEnv 會根據(jù)當(dāng)前環(huán)境變量的值,將字符串中的 ${var} 或 $var 替換掉。對未定義變量的引用將被空字符串替換。相當(dāng)于不需要os.Getenv了。

示例:

package main
import (
	"fmt"
	"os"
)
func main() {
	os.Setenv("GAME_NAME", "Chronicles of Darkness")
	os.Setenv("GAME_DIR", "/usr/games")
	fmt.Println(os.ExpandEnv("The $GAME_NAME game is placed in the ${GAME_DIR} path."))
}

輸出結(jié)果為:

The Chronicles of Darkness game is placed in the /usr/games path.

以上就是go利用標(biāo)準(zhǔn)庫os操作環(huán)境變量的全部內(nèi)容,學(xué)會了嗎?

到此這篇關(guān)于Go 如何使用os包操作環(huán)境變量的文章就介紹到這了,更多相關(guān)Go 環(huán)境變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang Type關(guān)鍵字的使用

    Golang Type關(guān)鍵字的使用

    Type關(guān)鍵字在Go語言中作用很重要,比如定義結(jié)構(gòu)體,接口,還可以自定義類型,定義類型別名等,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • golang語法使用的注意事項(xiàng)

    golang語法使用的注意事項(xiàng)

    這篇文章主要給大家介紹了關(guān)于golang語法使用的一些注意事項(xiàng),Golang是一種靜態(tài)類型的編程語言,它支持基本的數(shù)據(jù)類型,包括整型、浮點(diǎn)型、布爾型、字符串型,需要的朋友可以參考下
    2023-07-07
  • go語言制作的zip壓縮程序

    go語言制作的zip壓縮程序

    這篇文章主要介紹了go語言制作的zip壓縮程序,其主體思路是首先創(chuàng)建一個讀寫緩沖,然后用壓縮器包裝該緩沖,用Walk方法來將所有目錄下的文件寫入zip,有需要的小伙伴參考下。
    2015-03-03
  • GO語言中Chan實(shí)現(xiàn)原理的示例詳解

    GO語言中Chan實(shí)現(xiàn)原理的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Go語言中Chan實(shí)現(xiàn)原理的相關(guān)資料,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Go語言有一定的幫助,需要的可以參考一下
    2023-02-02
  • 詳解golang RWMutex讀寫互斥鎖源碼分析

    詳解golang RWMutex讀寫互斥鎖源碼分析

    這篇文章主要介紹了詳解golang RWMutex讀寫互斥鎖源碼分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • GO實(shí)現(xiàn)協(xié)程池管理的方法

    GO實(shí)現(xiàn)協(xié)程池管理的方法

    這篇文章給大家介紹GO實(shí)現(xiàn)協(xié)程池管理的方法,分別使用channel實(shí)現(xiàn)協(xié)程池和消費(fèi)者模式實(shí)現(xiàn)協(xié)程池,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-07-07
  • Golang map實(shí)現(xiàn)原理深入分析

    Golang map實(shí)現(xiàn)原理深入分析

    map是一種無序的基于key-value的數(shù)據(jù)結(jié)構(gòu),Go語言中的map是引用類型,必須初始化才能使用,下面這篇文章主要給大家介紹了關(guān)于golang中map使用的幾點(diǎn)注意事項(xiàng),需要的朋友可以參考下
    2023-01-01
  • Go語言開發(fā)技巧必知的小細(xì)節(jié)提升效率

    Go語言開發(fā)技巧必知的小細(xì)節(jié)提升效率

    這篇文章主要介紹了Go語言開發(fā)技巧必知的小細(xì)節(jié)提升效率,分享幾個你可能不知道的Go語言小細(xì)節(jié),希望能幫助大家更好地學(xué)習(xí)這門語言
    2024-01-01
  • go語言中的協(xié)程詳解

    go語言中的協(xié)程詳解

    本文詳細(xì)講解了go語言中的協(xié)程,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 深入理解?Go?中的字符串

    深入理解?Go?中的字符串

    這篇文章主要介紹了深入理解?Go?中的字符串,在編程語言中,字符串發(fā)揮著重要的角色。字符串背后的數(shù)據(jù)結(jié)構(gòu)一般有兩種類型,一種在編譯時指定長度不能修改,一種具有動態(tài)的長度可以修改,下文更多相關(guān)資料需要的小伙伴可以參考一下
    2022-05-05

最新評論