如何確定傳遞給我的 Func 的 var 是否實(shí)際上是我想要的類型?我有一個(gè)自定義類型type Name string和一堆那種類型的常量const Fred Name = "fred"并且我有一個(gè)函數(shù),我需要禁止除自定義類型之外的任何其他類型的輸入:func MyFunc(name1 Name, name2 Name) (*Person, error) {//bunch of stuff}我如何在我的 func 中檢查 name1 和 name2 不是傳遞給 func 的字符串,而是我已經(jīng)在我的類型 ex 中定義的常量:p, err := MyFunc(Fred,Albert) //What i wantp, err := MyFunc("fred","albert") //What i dont want to happen如果不能回答我的問(wèn)題,我如何才能像 Golang 中的 Enum 一樣制作一個(gè)有意義的類型并限制其他人使用我定義的那種類型
2 回答

SMILET
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
讓您的類型實(shí)現(xiàn)一個(gè)未導(dǎo)出的接口
type Name string
type Private interface{
private()
}
func (n Name) private() {}
func MyFunc(name1, name2 Private) (*Person, error) {
//bunch of stuff
}
- 2 回答
- 0 關(guān)注
- 177 瀏覽
添加回答
舉報(bào)
0/150
提交
取消