如何确定传递给我的 Func 的 var 是否实际上是我想要的类型?我有一个自定义类型type Name string和一堆那种类型的常量const Fred Name = "fred"并且我有一个函数,我需要禁止除自定义类型之外的任何其他类型的输入:func MyFunc(name1 Name, name2 Name) (*Person, error) {//bunch of stuff}我如何在我的 func 中检查 name1 和 name2 不是传递给 func 的字符串,而是我已经在我的类型 ex 中定义的常量:p, err := MyFunc(Fred,Albert) //What i wantp, err := MyFunc("fred","albert") //What i dont want to happen如果不能回答我的问题,我如何才能像 Golang 中的 Enum 一样制作一个有意义的类型并限制其他人使用我定义的那种类型
2 回答
SMILET
TA贡献1796条经验 获得超4个赞
让您的类型实现一个未导出的接口
type Name string
type Private interface{
private()
}
func (n Name) private() {}
func MyFunc(name1, name2 Private) (*Person, error) {
//bunch of stuff
}
- 2 回答
- 0 关注
- 159 浏览
添加回答
举报
0/150
提交
取消