首页 > 文章列表 > 如何在Golang中实现函数组合?

如何在Golang中实现函数组合?

golang 函数组合
218 2024-04-23

Golang 中实现函数组合,可以通过创建一个高阶函数,接受一个或多个函数作为参数并返回一个函数。例如,我们可以创建一个函数组合 ToUpperAndAddPrefix,将字符串转换为大写并添加前缀。

如何在Golang中实现函数组合?

在 Golang 中实现函数组合

函数组合是一种有效的技术,可以简化代码并提高代码可重用性。在 Golang 中,函数组合可以通过创建一个高阶函数来实现,该函数接受一个或多个函数作为参数并返回一个函数。

实战案例:将字符串转换为大写

假设我们有一个函数 ToUpper,用于将字符串转换为大写。我们可以使用函数组合来创建一个新的函数,将指定字符串转换为大写并添加前缀。

import "strings"

// ToUpper 转换字符串为大写
func ToUpper(s string) string {
    return strings.ToUpper(s)
}

// AddPrefix 添加前缀到字符串
func AddPrefix(prefix, s string) string {
    return prefix + s
}

// Compose 函数组合两个函数
func Compose(f, g func(string) string) func(string) string {
    return func(s string) string {
        return g(f(s))
    }
}

func main() {