Java中的空Lambda函数纯净

时间:2019-03-01 16:43:52

标签: java lambda

纯净与不纯净

根据定义,lambda表达式/语句如果不突变状态,则为纯函数,否则为不纯函数。状态一表示它在其上下文/封闭环境中接收到的参数或数据。

产生结果

lambda表达式/语句可能不会产生结果。那不应该干扰它的功能纯度。

因此,有人可能会认为以下类别(不纯的mutate参数)

  • 产生结果的纯函数lambda(例如x -> x + 1
  • 不纯函数lambda产生结果(例如(StringBuilder sb) -> {sb.append("impure and proud of it"); return -3;}
  • 纯函数void lambda(例如x -> {}
  • 不纯函数void lambda(例如(StringBuilder sb) -> sb.append("abc")

如何确定以下lambda的函数纯度:

  • x -> System.out.println(x)
  • x -> Util.writeToDb(x) (考虑writeToDb(int x),该方法采用intString作为参数,使用jdbc连接到db,将参数插入就绪表中并关闭连接。)

当然,在两种情况下,宇宙的状态都会随着调用而改变。但是从形式上来讲,国家领域在哪里结束?

0 个答案:

没有答案