MST

星途 面试题库

面试题:Go函数式反应型编程中的函数组合

在Go的函数式反应型编程中,假设你有两个函数f和g,f接受一个整数并返回字符串,g接受一个字符串并返回另一个字符串。请编写代码实现函数组合,使得可以通过一次调用完成从整数到最终字符串的转换,即调用组合后的函数传入整数得到经过f和g处理后的字符串。
33.2万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

func f(i int) string {
    return fmt.Sprintf("%d", i)
}

func g(s string) string {
    return "result: " + s
}

func compose(f func(int) string, g func(string) string) func(int) string {
    return func(i int) string {
        return g(f(i))
    }
}

你可以这样调用:

func main() {
    combined := compose(f, g)
    result := combined(10)
    fmt.Println(result) 
}