【问题标题】:Ask two integers from comandline - GOlang [closed]从命令行询问两个整数 - GOlang [关闭]
【发布时间】:2019-09-09 18:02:33
【问题描述】:

我完全可以向用户询问一个整数输入,但如果有两个,它就会失败,并显示“:=(undefined) 左侧没有新变量”

我没有看到任何解决方法的想法..

我试图创建两个变量-s(int 类型)。一个它工作得很好,但是添加另一个,它会哭泣..

var loop_count int
         fmt.Println("Insert start ID : ")

         _, err1 := fmt.Scanf("%d", &loop_count)

         if err1 != nil {
            fmt.Println(err)
         }

    arr := make([]uint8, loop_count) //How many times it loops

    var url_id int
         fmt.Println("Insert start ID : ") //From where it starts

         _, err := fmt.Scanf("%d", &url_id)

         if err != nil {
            fmt.Println(err)
         }

         fmt.Println("Starting download from : ", url_id)

所以我想从控制台问两件事:

  1. 循环次数(应该循环多少次)
  2. 应该从哪个 ID 开始下载。

【问题讨论】:

    标签: variables go input console integer


    【解决方案1】:

    您收到此错误是因为您已经声明了“err”,当您使用“:=”运算符时,您正试图重新声明(创建具有相同名称的变量)这个变量。您应该使用“=”来更改值。代码可以正常工作,但你最好添加验证:

    var loop_count int
    fmt.Print("Insert loop_count ID: ")
    
    _, err := fmt.Scanf("%d", &loop_count)
    
    if err != nil {
        fmt.Println(err)
    }
    
    var url_id int
    fmt.Print("\nInsert url_id ID: ") //From where it starts
    
    _, err = fmt.Scanf("%d", &url_id)
    
    if err != nil {
        fmt.Println(err)
    }
    
    fmt.Println("\nStarting download from: ", url_id)
    

    【讨论】:

    • 谢谢,成功了。仅当其他人试图从命令行获取两个或多个值时提示。所有参数都转到一行(它们之间的空格:D)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    相关资源
    最近更新 更多