Function 如何为函数设置限制或只注意提示';s论点
如何像下面这样设置参数限制 //一,Function 如何为函数设置限制或只注意提示';s论点,function,go,types,arguments,Function,Go,Types,Arguments,如何像下面这样设置参数限制 //一, func ChooseColor(color string:"black|white" ) { fmt.Println(color) } ChooseColor("white") // console "white" ChooseColor("yellow") // console panic 如果您觉得noob无法理解上述解决方案,请参见下文 //二, /** * ar
func ChooseColor(color string:"black|white" ) {
fmt.Println(color)
}
ChooseColor("white") // console "white"
ChooseColor("yellow") // console panic
如果您觉得noob无法理解上述解决方案,请参见下文
//二,
/**
* arg: "black|white"
*
*/
func ChooseColor(color string) {
fmt.Println(color)
}
ChooseColor( ) // IDE can notice "color: black || white"
请帮助我(T.T)您可以创建您的类型
颜色
,并具有此类型的常量。像这样的
type Color string
const (
ColorBlack Color = "black"
ColorWhite Color = "white"
)
func ChooseColor(color Color) {
fmt.Println(color)
}
这是
1的解决方案。
。如果给定的参数不是预期的参数,则函数将崩溃
func ChooseColor(color string) {
switch color {
case "white", "black":
fmt.Println(color)
default:
panic(color)
}
}
而2.
很可能由Bakurits回答。这使IDE能够捕获将传递给该函数的数据类型
type Color bool
const (
ColorBlack Color = true
ColorWhite Color = false
)
func ChooseColor(color Color) {
if color {
fmt.Println("black")
} else {
fmt.Println("white")
}
}
要做到这一点,godoc的“Go”方法是:
//ChooseColor选择一种颜色。有效颜色为:黑色、白色。
func ChooseColor(颜色字符串){
如果颜色!=“黑色”&&color!=“白色”{
/*处理错误条件*/
}
/* ... */
}
这将出现在大多数IDE中。可能会将类型更改为int以容纳更大的池?@Kisinga然后它将允许函数的参数不是“黑”和“白”。键入
bool
强制用户在运行前从中进行选择。我认为1.
要求在运行时进行异常处理,2.
更多的是关于静态类型检查。无论哪种方法,您都可以提供true或false,因为底层类型是bool,函数仍然有效。IMHO将其更改为int将只允许定义更多颜色,而不是黑白,同时保持类型安全。如果类型未导出,则包的用户不可能创建意外值。