我需要帮助才能摆脱困境,因为我不了解遇到的问题背后的逻辑。
我需要多次询问用户输入,因此从逻辑上讲,我正在创建一个函数,例如:
func askstuff() {
fmt.Println("Write something:")
var input string
fmt.Scanln(&input)
}
现在我需要从main()函数获取用户输入的变量,但是我有一个非声明性的问题和一个大脑问题。...事实上,我期望这样做,但是错误
func main() {
askstuff()
println askstuff(input)
}
我一直在阅读所有文章和文档,并且我了解,我应该在main()之前的主体中使用main()中的声明性变量代替函数。仅当存在硬编码的固定值时,它才像魅力一样起作用,但不适用于Scanln交互式控制台输入。
我需要执行很多次AskQuestFuff(),以至于没有单独的类/函数,我就会发疯,但是我还需要关闭AskStuff()函数之外的main()函数中的变量输入,以便能够对其进行处理。
如果您举一个不使用固定硬编码值但使用scanln与用户控制台交互的示例,我会100%接受RTFM答复。
所有书籍示例都从不使用scanln输入,而是始终在主体main()中使用固定的声明性变量。
我是否在特定的scanln限制下运行?设计概念与我的逻辑有关吗?还是有更好的方法?
请不要仅向我提供有关如何解决此问题的摘要,请向我解释我的逻辑错在哪里以及为什么错,以便了解它,以后不再重复该错误。
答案 0 :(得分:0)
从askstuff
返回字符串,并在调用方中根据需要使用:
func askstuff() string {
fmt.Println("Input to exit digit X:")
var input string
fmt.Scanln(&input)
return input
}
func main() {
x := askstuff()
fmt.Println(x)
}