Switch
语法介绍
- Go的switch 类似C的Switch
- 这对比python 可以更加灵活
- 要注意一点的是如果你的case中要return一个值,那么你在函数内也要return,下面的例子我会标明
语句想必大家也是很熟悉,接下来我废话不多,直接代码上例子
// 开始第一个简单的例子
package main
import (
"fmt"
"math"
)
func Demo1(f float64)(){
result := math.Sqrt(f)
switch result {
case 3,4:
fmt.Println("您输出的值开根号值在我们的范围内")
fallthrough // 相当于break 每一个case满足后就不在向后运行
default:
fmt.Println("您输入的值不在我们的范围内")
}
}
func main() {
Demo1(25)
}
上面的例子中 着重介绍的是fallthrough 它的作用是满足当前case后便不再向后运行,这可以应用到满足多种条件下输出指定case
接下来我们在例子中添加return
package main
import (
"fmt"
"math"
)
func Demo1(f float64)(z int){
result := math.Sqrt(f)
switch result {
case 3,4:
fmt.Println("您输出的值开根号值在我们的范围内")
fallthrough // 相当于break 每一个case满足后就不在向后运行
case 5:
return 7
default:
fmt.Println("您输入的值不在我们的范围内")
}
}
func main() {
test := Demo1(25)
fmt.Println(test)
}
此时我们的运行会报错missing return at end of function
那是因为我们没有给函数最终的一个返回值,接下来我们进行修改
package main
import (
"fmt"
"math"
)
func Demo1(f float64)(z int){
result := math.Sqrt(f)
switch result {
case 3,4:
fmt.Println("您输出的值开根号值在我们的范围内")
fallthrough // 相当于break 每一个case满足后就不在向后运行
case 5:
return 7
default:
fmt.Println("您输入的值不在我们的范围内")
}
return z // 在此处添加返回值
}
func main() {
test := Demo1(25)
fmt.Println(test)
}