猿问

如何比较 Int Var 与结构的内容

使用 Go 1.11。得到以下结构,


type inputsData struct {

  TurnOne   int

  TurnTwo   int

  TurnThree int

  TurnFour  int

  TurnFive  int

  TurnSix   int

  TurnSeven int

  TurnEight int

  TurnNine  int

}

其中包含来自用户输入的数据。没关系,但我想检查TurnTwo用户输入的内容是否已经输入?


例子, Input 1 -> 6, Input 2 -> 4,Input 3 -> 6


所以会发生什么是一旦用户再次输入 6 转 3,它会记录,抱歉再试一次......


所以这就是我检查的方式,


func checkInputTwo(userInput int) bool {

   var ok bool

   ok = true

   if userInput == t.TurnOne {

    ok = false

   }

   if userInput == t.TurnTwo {

    ok = false

   }

   if userInput == t.TurnThree {

    ok = false

   }

   if userInput == t.TurnFour {

    ok = false

   }

   if userInput == t.TurnFive {

    ok = false

   }

   if userInput == t.TurnSix {

    ok = false

   }

   if userInput == t.TurnSeven {

    ok = false

   }

   if userInput == t.TurnEight {

    ok = false

   }

   if userInput == t.TurnNine {

    ok = false

   }


   return ok

}

这就是我加载该功能的方式,


func checkStageTwo(input int) int {

  var ok bool


   fmt.Println(ok)


   for ok {

      ok = checkInputTwo(input)

      fmt.Println(ok)

   }


   fmt.Println(ok)


   return input

}

我只是加载该函数并为其提供输入。这是行不通的。它允许输入相同的输入,但一旦匹配,我就会陷入我的 for 循环打印错误?


所以基本上我想检查用户输入是什么以及它是否在我的结构的内容之内。我已经加载了 struct 包,因此它可用于所有功能。


谢谢。


人到中年有点甜
浏览 110回答 1
1回答

幕布斯7119047

我不确定您的具体用例是什么,但纯粹基于显示的代码,这实际上应该是一个切片或数组而不是一个结构。带有编号字段的结构是一种非常不寻常的设计。正如您所发现的,具有编号字段的结构是一种非常不寻常的设计,并且很难使用。如果它是一个切片,你可以简单地遍历它:func checkInput(userInput int, pastInputs []int) bool {    for _,i := range pastInputs {        if userInput == i {            return flase        }    }    return true}
随时随地看视频慕课网APP

相关分类

Go
我要回答