使用 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 包,因此它可用于所有功能。謝謝。
1 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
我不確定您的具體用例是什么,但純粹基于顯示的代碼,這實際上應該是一個切片或數組而不是一個結構。帶有編號字段的結構是一種非常不尋常的設計。正如您所發現的,具有編號字段的結構是一種非常不尋常的設計,并且很難使用。如果它是一個切片,你可以簡單地遍歷它:
func checkInput(userInput int, pastInputs []int) bool {
for _,i := range pastInputs {
if userInput == i {
return flase
}
}
return true
}
- 1 回答
- 0 關注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消