返回一个参数
func eval(a,b int, op string) int {
switch op {
case "+":
return a+b
case "-":
return a-b
case "*":
return a*b
case "/":
return a/b
default:
painc("请选择正确的计算符号:" + op)
}
}
func main(){
fmt.Println(eval(3,4,"*")) //结果输出为12
}
返回多个参数
//除余算法 13/3 等于 4余1
func div(a,b int) (int,int) {
rerutn a / b, a % b
}
//除余算法给返回参数命名 q是商 r是余数
func div(a,b int) (q, r int) {
rerutn a / b, a % b
}
func main(){
fmt.Println(div(13,3)) //结果输出为4 1
//有返回参数命名的用法
q ,r := div(13,3) //q与r也可随意替换成其他字符
fmt.Println(q,r) //结果输出为4 1
//抛弃一个返回值 把要抛弃的返回值变成下划线 _
q ,_ := div(13,3)
fmt.Println(q) //结果输出为4
}
返回参数以及报错,不中断执行(去掉painc)
func eval(a,b int, op string) (int, error) {
switch op {
case "+":
return a+b, nil
case "-":
return a-b, nil
case "*":
return a*b, nil
case "/":
return a/b, nil
default:
return 0 ,fmt.Errorf("请选择正确的计算符号: %s" , op)
}
}
func main(){
fmt.Println(eval(3,4,"X")) //结果输出为 0 请选择正确的计算符号:X (不会中断执行)
//判断是否出错
if result, err := eval(3,4,"X"); err != nil {
fmt.Println("Error:", err)
}else {
fmt.Println(result)
}
}