发布时间:2024-11-24 22:19:56
例如:
``` func add(x, y int) int { return x + y } ``` 在上述示例中,我们定义了一个名为`add`的函数,它接收两个整数类型的参数并返回一个整数类型的结果。通过这种清晰的定义方式,我们能够快速地理解函数的功能。例如:
``` func divide(x, y float64) (float64, error) { if y == 0 { return 0, fmt.Errorf("division by zero") } return x / y, nil } ``` 在上述示例中,我们定义了一个名为`divide`的函数,它接收两个浮点型参数并返回一个浮点型结果和一个错误类型。如果除数为零,函数会返回一个错误;否则,函数会返回正确的计算结果。通过这种方式,我们可以轻松处理异常情况,并使代码更加健壮。例如:
``` func adder() func(int) int { sum := 0 return func(x int) int { sum += x return sum } } func main() { a := adder() fmt.Println(a(1)) // 输出 1 fmt.Println(a(2)) // 输出 3 fmt.Println(a(3)) // 输出 6 } ``` 在上述示例中,我们定义了一个名为`adder`的函数,它返回一个匿名函数。匿名函数内部可以访问外部函数的变量,因此每次调用匿名函数时,都会累加`sum`变量的值。例如:
``` func sum(nums ...int) int { total := 0 for _, num := range nums { total += num } return total } func main() { fmt.Println(sum(1, 2)) // 输出 3 fmt.Println(sum(1, 2, 3, 4)) // 输出 10 fmt.Println(sum(1, 2, 3, 4, 5)) // 输出 15 } ``` 在上述示例中,我们定义了一个名为`sum`的函数,它接收任意数量的整数参数并返回它们的总和。通过使用可变参数,我们可以灵活地调用函数,并且不需要预先定义参数的数量。例如:
``` type operation func(int, int) int func add(x, y int) int { return x + y } func multiply(x, y int) int { return x * y } func calculate(x, y int, op operation) int { return op(x, y) } func main() { fmt.Println(calculate(2, 3, add)) // 输出 5 fmt.Println(calculate(2, 3, multiply)) // 输出 6 } ``` 在上述示例中,我们定义了一个名为`operation`的函数类型,它接收两个整数参数并返回一个整数结果。我们还定义了`add`和`multiply`两个函数,并通过`calculate`函数将它们作为参数传递。这种方式使得程序的结构清晰,同时也提高了代码的可扩展性。