在 go 中,函数类型允许创建接受函数作为参数并返回函数的函数。其语法为:func(参数类型) 返回值类型。函数类型可通过使用 func 关键字声明为方法:func (p person) greet(msg string) {...}。实战案例中,创建了一个接受 stringprocessor 函数作为参数的函数,并使用匿名函数计算给定字符串的长度。
Go语言中常见的函数类型
函数类型允许我们创建接受一个或多个函数作为参数并返回一个函数的新函数。这在编写可重用和可组合代码时非常有用。
语法
立即学习“go语言免费学习笔记(深入)”;
点击下载“修复打印机驱动工具”;
在 Go 中,函数类型声明如下:
func(参数类型) 返回值类型
例如,下面是一个接受字符串参数并返回另一个字符串的函数类型:
type StringProcessor func(string) string
方法
我们可以使用 func 关键字将函数类型声明为方法:
type Person struct {
Name string
}
func (p Person) Greet(msg string) {
fmt.Println(p.Name, "says", msg)
}
实战案例
让我们创建一个函数,它接受一个 StringProcessor 函数作为参数,并将给定的字符串传递给该函数。我们使用这个匿名函数来计算给定字符串的长度:
func ProcessString(s string, p StringProcessor) int {
return p(s)
}
func main() {
s := "Hello, world!"
length := ProcessString(s, func(s string) int { return len(s) })
fmt.Println("Length of string:", length)
}
运行此代码将打印:
Length of string: 13