【发布时间】:2021-06-22 01:16:43
【问题描述】:
我正在编写一个简单的控制台游戏,并且想将玩家映射到一个符号。对于两个玩家,我的方法如下所示:
func playerToString(p player) string {
if p == 0 {
return "X"
}
return "O"
}
func stringToPlayer(s string) player {
if s == "X" {
return 0
}
return 1
}
当然,你也可以把它写成两个映射,映射 int 到 string 和 string 到 int。上述方法和地图方法似乎都容易出错。有没有更惯用的方式来写这个?也许是一些非 iota 枚举方式?
【问题讨论】:
-
这是一个基于观点的问题,因此可能题外话。
-
也就是说,一般来说,在每种语言中都可以考虑使用 switch 语句来处理这类事情。
-
不确定这是否基于意见。可能有一个明确的指南如何做到这一点@BadZen
-
作为题外话结束似乎有点草率。 OP 提出了一个合理的问题,在 Go 中有两个或三个答案,其中一些在某些情况下可能比其他情况更合适或更惯用。 @User12547645,你能给我们更多的背景信息吗?什么是“播放器”?会不会只有两个玩家,等等?
-
让我们再等几个小时。也许这个问题会有一个清晰的地道答案