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

scanfl 声明变量超出功能

scanfl 声明变量超出功能

Go
墨色风雨 2023-06-12 15:39:10
我需要帮助才能走出困境,因为我不明白我遇到的问题背后的逻辑。我需要多次询问用户输入,所以逻辑上我正在创建一个函数,如:func askstuff() {    fmt.Println("Write something:")    var input string    fmt.Scanln(&input)}现在我需要让用户从 main() 函数输入一个变量,但我有一个非声明性的问题和一个大脑问题……事实上我期待做类似的事情,但这是错误的func main() {    askstuff()    println askstuff(input)}我一直在阅读所有的帖子和文档,我明白我应该在 main() 之外,在主体中,在 main() 之前使用声明变量而不是函数。仅当存在硬编码的固定值时它才像魅力一样工作,但它不适用于 Scanln 交互式控制台输入。我需要执行很多次 askstuff(),如果没有单独的类/函数,它会让我发疯,但我还需要将输入关闭到 main() 函数内的变量中,而不是 askstuff() 函数,以便能够处理它。如果您给我一个不使用固定硬编码值但使用 scanln 用户控制台交互的示例,我 100% 可以接受 RTFM 回复。所有书籍示例从不使用 scanln 输入,始终是主体中 main () 之外的固定声明变量。我是否在特定的 scanln 限制下运行?设计概念与我的逻辑有关吗?或者有更好的方法?请不要只给我关于如何解决问题的片段,解释我的逻辑在哪里以及为什么是错误的,以便理解它并且以后不要重复错误。
查看完整描述

1 回答

?
繁花不似锦

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

返回字符串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)

}


查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

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