如何確定傳遞給我的 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 關注
- 186 瀏覽
添加回答
舉報
0/150
提交
取消