关于lambda表达式为什么难以阅读的小思考

21 阅读2分钟

我刚刚仔细思考了两个问题:

  1. 为什么lambda表达式会比非lambda表达式难以阅读?
  2. 为什么编写lambda表达式会比编写非lambda表达式丝滑很多?

回答:本质上是因为lambda表达式让我们不用去手动写“输入输出的类型”。

我们自己思考一段业务逻辑的时候,我们思维中其实早就想好了 “每一步处理” 的输入输出的类型,

这时候因为我们大脑中完全掌握了所有输入输出的类型信息,所以我们不会有 “难以理解每一步处理过程的输入输出类型” 的问题。

如果我们使用lambda表达式来实现这段业务逻辑,那么我们就省略了烦人的中间变量类型声明代码,而只需要编写“处理逻辑”。所以lambda表达式在编码的阶段,写起来很丝滑。

但用lambda表达式写得代码,完全不存在中间变量。这就缺乏了对每一个步骤的处理结果的类型提示,阅读代码的难度会大幅度提升。

此时,阅读lambda表达式的程序员必须在大脑中去“复现”lambda表达式中,每一个步骤的输入输出的类型。这就导致较长的lambda表达式读起来很痛苦。

但如果用非lambda表达式来编码的话:

普通的业务逻辑一般只存在两种东西,1.变量 2.处理函数 我们平时写java的时候,代码大致如此 把变量A,输入到处理函数甲,输出为变量B

这种代码,我们是需要明确地定义变量A和变量B的类型。所以我们编码时,总要做一下这种声明类型的重复劳作,写代码的时候就慢了。

但是,别人读我们代码的时候,因为每一步的处理,都有严格的类型定义作为代码阅读的提示。所以代码可读性会好很多。