Go - 8.func 函数使用
在Go语言中,函数是一种基本的代码结构,它允许你封装一段代码,并在需要的时候调用它。函数可以有参数和返回值,参数是函数的输入,返回值是函数的输出。
以下是一些Go语言中函数的使用方法:
- 函数定义和调用
函数的定义主要有以下几种方式:
- 有明确的返回值的函数
- 无返回值的函数
- 多返回值的函数
- 有参数的函数
- 多参数的函数
- 可变参数的函数
package main
import "fmt"
// 定义一个无参数无返回值的函数
func sayHello() {
fmt.Println("Hello, World!")
}
// 定义一个有参数无返回值的函数
func greet(name string) {
fmt.Printf("Hello, %s!\n", name)
}
// 定义一个有参数有返回值的函数
func add(a, b int) int {
return a + b
}
func main() {
// 调用无参数无返回值的函数
sayHello()
// 调用有参数无返回值的函数
greet("John")
// 调用有参数有返回值的函数
result := add(10, 20)
fmt.Println(result)
}
- 函数作为值和函数作为参数
在Go语言中,函数也可以被当作值来使用。你可以将函数作为其他函数的参数,或者作为其他函数的返回值。
package main
import "fmt"
// 定义一个函数类型的变量
var functionVariable func(a, b int) int
// 定义一个接收函数作为参数的函数
func printResult(f func(a, b int) int, a, b int) {
fmt.Println(f(a, b))
}
// 定义一个返回函数的函数
func getAdder(addBy int) func(int) int {
return func(num int) int {
return num + addBy
}
}
func main() {
// 将特定的函数赋值给函数类型的变量
functionVariable = add
// 调用接收函数作为参数的函数,并传入add函数
printResult(add, 10, 20)
// 调用返回函数的函数,并调用返回的函数
result := getAdder(5)(10)
fmt.Println(result)
}
- 匿名函数
匿名函数是一种没有声明的函数,它可以在需要的时候直接定义。
package main
import "fmt"
func main() {
// 定义并直接调用一个匿名函数
func(a, b int) {
fmt.Println(a + b)
}(10, 20)
// 定义并调用一个接收函数作为参数的匿名函数
func(f func(a, b int) int, a, b int) {
fmt.Println(f(a, b))
}(add, 10, 20)
}
- 递归函数
递归函数是一种直接或间接调用自身的函数。
package main
import "fmt"
// 定义一个计算阶乘的递归函数
func factorial(n int) int {
if n == 0 {
return 1
}
return n * factorial
评论已关闭