函数式编程——把函数作为参数

函数式编程

函数式编程

网上不少函数式编程的概念都说得好抽象,看不懂,还不如码点代码来得清晰。本文以go语言为例,实践一个函数式编程中小点:把函数作为参数。这也是函数式语言与其他语言的一个很重要的区别,可以显著减少代码量。

实践:把函数作为参数

先看段段代码:

上面的代码,每个err都要判空,还要根据不同情况打印不同级别的日志。代码显得很冗长,难看。怎么办?把判空和输出日志的部分抽成方法,代码应该会清爽很多,改造后如下:

上面的代码,把冗余逻辑抽成单独的方法,主体代码逻辑就简化了,代码清爽了许多。但问题是原来的一个main函数,变成了4个函数,代码行数明显增加了。

好吧,那把三个抽出来的函数合成一个,这样判空的代码就只需要写一份了。看看这样吧:

嗯,这样确实方法数少了,代码行数少了点,但是新增了3个常量。好吧,来看看函数式编程会怎样吧:

上面的代码把函数作为参数,瞬间将代码行数降到最低,逻辑仍然非常清晰。用什么输出日志都由调用方来决定。

这算是一个函数式编程的实践案例吧。尽管用java面向对象的方式也能实现类似的效果,但是想想写出来的代码行数一定不少。话说代码越短,阅读代码的人接受的信息越集中,越容易看懂代码。有时候用函数式的思维来解决问题,你会发现代码好短。

Reference

函数式编程思想

原创文章:函数式编程——把函数作为参数,转载请注明:转载自戎码一生

Post Footer automatically generated by wp-posturl plugin for wordpress.



好书推荐:Java Web开发实战