Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当未找到环境变量时,如何失败/退出golang程序的执行?_Go - Fatal编程技术网

当未找到环境变量时,如何失败/退出golang程序的执行?

当未找到环境变量时,如何失败/退出golang程序的执行?,go,Go,我需要将一个环境变量SubscriptionID读取到golang变量subId。当我的程序能够读取env变量SubscriptionID时,它运行良好。程序运行到完成时,即使找不到env var,也会产生意外的结果 如果找不到环境变量,如何使其失败(退出执行) package main import ( "fmt" "os" ) func main(){ subId := os.Getenv("SubscriptionID") fmt.Printf("Subscriptio

我需要将一个环境变量
SubscriptionID
读取到golang变量
subId
。当我的程序能够读取env变量
SubscriptionID
时,它运行良好。程序运行到完成时,即使找不到env var,也会产生意外的结果

如果找不到环境变量,如何使其失败(退出执行)

package main

import (
  "fmt"
  "os"
)

func main(){
  subId := os.Getenv("SubscriptionID")
  fmt.Printf("SubscriptionID: %v\n", subId)
}

LookupEnv检索由 钥匙如果环境中存在变量,则该值 可能为空),且布尔值为真。否则 返回值将为空,布尔值将为false


比如说,

package main

import (
    "fmt"
    "os"
)

func main() {
    subId, present := os.LookupEnv("SubscriptionID")
    if !present {
        fmt.Printf("SubscriptionID: not present\n")
        return
    }
    fmt.Printf("SubscriptionID: %v\n", subId)
}
游乐场:

输出:

SubscriptionID: not present

LookupEnv检索由 钥匙如果环境中存在变量,则该值 可能为空),且布尔值为真。否则 返回值将为空,布尔值将为false


比如说,

package main

import (
    "fmt"
    "os"
)

func main() {
    subId, present := os.LookupEnv("SubscriptionID")
    if !present {
        fmt.Printf("SubscriptionID: not present\n")
        return
    }
    fmt.Printf("SubscriptionID: %v\n", subId)
}
游乐场:

输出:

SubscriptionID: not present

检查subId是否为“”,如果是,则退出?@BurakSerdar:如果测试存在但为空,则该测试为真。OP问:“如果找不到环境变量,如何使其失败(退出执行)?如果没有设置变量,程序会产生意外结果(使Getenv返回空字符串),如果SubscriptionID显式设置为空字符串,它不会也会产生意外结果吗?@Peter没有想到这一点。这将是一个很好的测试用例。检查subId是否为“”,如果是,则退出?@BurakSerdar:如果测试存在但为空,则该测试为真。OP问:“如果找不到环境变量,如何使其失败(退出执行)?如果没有设置变量,程序会产生意外结果(使Getenv返回空字符串),如果SubscriptionID显式设置为空字符串,它不会也会产生意外结果吗?@Peter没有想到这一点。这将是一个很好的测试用例。