为了账号安全,请及时绑定邮箱和手机立即绑定

确定 var 是否为自定义类型

确定 var 是否为自定义类型

Go
牛魔王的故事 2021-08-16 20:17:37
如何确定传递给我的 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

}


查看完整回答
反对 回复 2021-08-16
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信