美文网首页
【笔记】柯里化的使用

【笔记】柯里化的使用

作者: KKMYDESTINY | 来源:发表于2022-04-01 12:15 被阅读0次

    先看一下什么是柯里化:

    在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
    -- 百度百科

    柯里化是函数化编程的思想,简单来说就是通过在函数中返回函数,以此来减少每个函数的参数个数。

    举个栗子:

    func add(value int) func (int) int {
      return func (a int) int {
        return value + a
      }
    }
    
    fmt.Prinlnt(add(5)(10)) // 15
    

    实际应用:

    rxgoJust函数使用柯里化(currying)让它可以在第一个参数中接受多个数据,在第二个参数中接受多个选项定制行为。由于 Go 不支持多个可变参数,Just通过柯里化迂回地实现了这个功能:

    // rxgo/factory.go
    func Just(items ...interface{}) func(opts ...Option) Observable {
      return func(opts ...Option) Observable {
        return &ObservableImpl{
          iterable: newJustIterable(items...)(opts...),
        }
      }
    }
    

    参考:Go 每日一库之rxgo

    相关文章

      网友评论

          本文标题:【笔记】柯里化的使用

          本文链接:https://www.haomeiwen.com/subject/qhkajrtx.html