我有一个Direction字符串value类型的结构。Direction应该是N、S或。WE
type Direction struct {
value string
}
受到这个问题的回答的启发:Does Go have "if x in" construct similar to Python? 我想以有效方式创建 Direction 的一种好方法可以是这个:
func NewDirection(direction string) Direction {
switch direction {
case "N","S","W","E": return Direction{direction}
}
panic("invalid direction")
}
但这对我来说还不够,因为我仍然可以创建无效的方向:
d := Direction{"X"}
我还发现了这篇关于在 go 中强制使用构造函数的有趣文章。阅读这篇文章,我可以看出使用另一个包是必要的。我可以在 main 包中有一个“受保护”的结构吗?
神不在的星期二
相关分类