Как сравнить Int Var с содержимым структуры - PullRequest
0 голосов
/ 11 декабря 2018

Использование 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
}

И я просто загружаю эту функцию, предоставляя ей вход.Это не работает.Он допускает тот же ввод, но как только это совпадение, я просто застреваю в своем цикле для печати false?

Так что в основном я хочу проверить, что представляет собой ввод пользователя и находится ли он в содержимом моей структуры.Я загрузил пакет struct так, чтобы он был доступен для всех функций.

Спасибо.

1 Ответ

0 голосов
/ 11 декабря 2018

Я не уверен, каков ваш конкретный вариант использования, но основываясь исключительно на показанном коде, это действительно должен быть фрагмент или массив, а не структура.Структура с пронумерованными полями - очень необычный дизайн.Структура с пронумерованными полями - очень необычный дизайн, с которым очень трудно работать, как вы уже нашли.Если бы это был фрагмент, вы могли бы просто зациклить его:

func checkInput(userInput int, pastInputs []int) bool {
    for _,i := range pastInputs {
        if userInput == i {
            return flase
        }
    }
    return true
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...