如何在switch中对多个type进行匹配

kooder · · 3803 次点击
但是如果是非type类型的switch,是支持多条件判断的,比如 ``` package main import ( "fmt" "runtime" ) func main() { fmt.Print("Go runs on ") oss := "golang OS" switch os := runtime.GOOS; oss { case "darwin": fmt.Println("OS X.") case "golang OS", "linux": fmt.Println("Linux.") default: // freebsd, openbsd, // plan9, windows... fmt.Printf("%s.", os) } } ```
#4
更多评论
不能偷懒,老老实实分开呗。
#1
如果你这里把int和float64分到同一组是出于有相同的算数操作,那么可以考虑把这些操作归类到一个interface,然后将int和float64再自定义类型,`type MyInt int`,`type MyFloat64 float64`, 然后将MyInt和MyFloat64实现这个interface的接口,这样上面就可以统一为 : case MyInterface: fmt.Printf("Twice %v is %v\n", v, v.Multiply(2))
#2