gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:39 25 4
gpt4 key购买 nike

使用 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 检查用户输入的内容是否已经输入?

示例,输入 1 -> 6输入 2 -> 4输入 3 -> 6

所以一旦用户再次为第 3 轮输入 6,它会记录,抱歉,再试一次...

这就是我检查的方式,

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

谢谢。

最佳答案

我不确定您的具体用例是什么,但纯粹基于显示的代码,这实际上应该是 slice 或数组而不是结构。带有编号字段的结构是一种非常不寻常的设计。正如您所发现的,具有编号字段的结构是一种非常不寻常的设计,并且很难使用。如果它是一个 slice ,您可以简单地遍历它:

func checkInput(userInput int, pastInputs []int) bool {
for _,i := range pastInputs {
if userInput == i {
return flase
}
}
return true
}

关于go - 如何比较 Int Var 与结构的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53726515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com