gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:18:29 24 4
gpt4 key购买 nike

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 然后打印出结果

最佳答案

我只是将我的评论作为答案...我不建议这样做,但是您可以只在包范围内声明变量。它看起来像这样;

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)

关于go - 在go中,我如何制作全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33906141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com