//////////////////////////////////////
fun 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:
panic("unsupported operation" + op)
}
}
fun 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("unsupported operation: %s", op)
}
}
//////////////////////////////////////
/////////////////////////////////////
fun eval(a, b int) (int, int) {
return a / b, a % b
}
fun eval(a, b int) (q, r int) {
return a / b, a % b
}
// 不建议使用这种
fun eval(a, b int) (q, r int) {
q = a / b
r = a % b
return q, r
}
//////////////////////////////////////
//////////////////////////////////////
fun apply(op func(int, int) int, a, b int) int {
// 获取函数名
p := reflect.ValueOf(op).Pointer
opName := runtime.FunForPc(p).Name
fmt.Printf("Calling function %s with args " + "(%d, %d)", opName, a, b)
return op(a, b)
}
// 重写pow函数
fun pow(a, b int) int {
return int(math.Pow(float64(a), float64(b)))
}
apply(pow, 3, 4)
// 匿名函数
apply(func(a,b int) int {
return int(math.Pow(float64(a), float64(b)))
}, 3, 4)
//////////////////////////////////////
//////////////////////////////////////
// 可变参数列表
func sun(numbers ...int) int {
s := 0
fori := range numbers {
s += numbers[i]
}
return s
}
//////////////////////////////////////
5.golang函数
最新推荐文章于 2025-11-23 22:34:58 发布

2036

被折叠的 条评论
为什么被折叠?



