为了账号安全,请及时绑定邮箱和手机立即绑定

在go中,如何制作全局变量

在go中,如何制作全局变量

Go
12345678_0001 2021-11-22 18:54:05
package main import (    "fmt"    "bufio"    "os")func main() {    fmt.Print("LOADED!\n")    fmt.Print("insert y value here: ")    inputY := bufio.NewScanner(os.Stdin)    inputY.Scan()    inputXfunc()}func inputXfunc() {    fmt.Print("insert x value here: ")    inputX := bufio.NewScanner(os.Stdin)    inputX.Scan()    slope()}func slope() {    fmt.Println(inputX.Text())}每当我运行这个程序时,它都会说 inputX 和 inputY 是未识别的。我如何让这个程序使用所有函数都可以访问的变量?我想要做的就是通过 inputX 划分 inputY 然后打印出结果
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

我只是把我的评论作为答案......我建议反对这个,但是你可以在包范围内声明变量。它看起来像这样;


package main 


import (

    "fmt"

    "bufio"

    "os"

)


var inputX io.Scanner


func main() {

    fmt.Print("LOADED!\n")

    fmt.Print("insert y value here: ")

    inputY := bufio.NewScanner(os.Stdin)

    inputY.Scan()

    inputXfunc()

}


func inputXfunc() {

    fmt.Print("insert x value here: ")

    inputX = bufio.NewScanner(os.Stdin) // get rid of assignment initilize short hand here

    inputX.Scan()

    slope()

}


func slope() {

    fmt.Println(inputX.Text())

}

然而,更好的选择是更改您的方法定义以接受参数并根据需要将值传递给它们。这个要这样;


func slope(inputX bufio.Scanner) {

        fmt.Println(inputX.Text())

    }


 slope(myInputWhichIsOfTypeIOScanner)


查看完整回答
反对 回复 2021-11-22
?
慕沐林林

TA贡献2016条经验 获得超9个赞

您可以创建一个init()函数并在 中使用它,方法是main.go使用 package likegodotenv来设置 os 的环境变量:


global.go 文件


package global


import (

    "log"

    "os"

    "strconv"


    "github.com/joho/godotenv"

)


var (

    SERVER_HOST        string

    SERVER_PORT        int

)


func InitConfig() {


    err := godotenv.Load()

    if err != nil {

        log.Fatal("Error loading .env file")

    }


    SERVER_HOST = os.Getenv("SERVER_HOST")

    SERVER_PORT, _ = strconv.Atoi(os.Getenv("SERVER_PORT"))

}

main.go 文件


package main


import(

    G "path/to/config"

)


func init() {

    G.InitConfig()

}


func main() {

    G.Init()

}

您仍然需要在其他包中导入“G”包才能使用这些变量,但我认为在 Go(或任何其他语言)中处理全局变量的最佳方法是使用环境变量。


查看完整回答
反对 回复 2021-11-22
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信