从comandline询问两个整数-GOlang

时间:2019-04-19 13:02:21

标签: variables go input console integer

我可以向用户询问一个整数输入,但对于两个整数,它会失败,因为“在:=(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开始下载。

1 个答案:

答案 0 :(得分:0)

出现此错误是因为您已经声明了“ 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)