1. 函数声明¶
Go语言里面拥三种类型的函数:
- 普通的带有名字的函数
- 匿名函数或者 lambda 函数
- 方法
普通函数
func hypot(x, y float64) float64 {
return math.Sqrt(x*x + y*y)
}
fmt.Println(hypot(3,4)) // "5"
// 函数变量
var f func()
f = hypot
f()
package main
import (
"fmt"
"strings"
)
func StringProccess(list []string , chain []func(string) string ){
for index, str := range list{
result :=str
for _, proc := range chain {
result = proc(result)
}
list[index] = result
}
}
func removePrefix(str string ) string {
return strings.TrimPrefix(str,"go")
}
func main() {
list := []string{
"go scanner",
"go parser",
"go compiler",
"go printer",
"go formater",
}
chain := []func(string) string{
removePrefix,
strings.TrimSpace,
strings.ToUpper,
}
StringProccess(list, chain)
for _, str := range list {
fmt.Println(str)
}
}