ITPub博客

首页 > 应用开发 > > 如何理解Java函数式编程?

如何理解Java函数式编程?

作者:pswyjz 时间:2019-10-29 10:03:21 0 删除 编辑

1)无副作用。指所有功能返回一个新的值,没有其它行为,不得修改外部变更的值;

2)不变性。只能修改本地变更,除此之外,它引用的对象应该是不可修改的对象(final类型)。

有部分同学分不清命令式编程、声明式编程和函数式编程,其实三者很好区分:

命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。

声明式编程是以数据结构的形式来表达程序执行的逻辑。它的主要思想是告诉计算机应该做什么,但不指定具体要怎么做,SQL语句就是最明显的一种声明式编程的例子。

函数式编程和声明式编程是有所关联的,他们都只关注做什么而不是怎么做。但函数式编程不仅仅局限于声明式编程,函数式编程最重要的特点是“函数第一位”。

函数式编程涉及的概念知识

声明式编程

函数式编程属于声明式编程范式:这种范式会描述一系列的操作,但并不会暴露它们是如何实现的或是数据流如何传过它们。声明式是将程序的描述与求值分离开来,它关注如何用各种表达式来描述程序逻辑,而不一定要指明其控制流或状态关系的变化。

纯函数

纯函数指没有副作用的函数。使用纯函数的代码绝不会更改或破坏全局状态,有助于提高代码的可测试性和可维护性。纯函数有两个特征:1)仅取决于提供的输入,而不依赖于任何在函数求值或调用间隔时可能变化的隐藏状态和外部状态。2)不会造成超出作用域的变化,例如修改全局变量或引用传递的参数。

引用透明

引用透明是定义一个纯函数较为正确的方法。纯度在这个意义上表面一个函数的参数和返回值之间映射的纯的关系。如果一个函数对于相同的输入始终产生相同的结果,那么我们就说它是引用透明。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/755/viewspace-3144225/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: .NET Core 的问题
请登录后发表评论 登录
全部评论

注册时间:2019-11-21

  • 博文量
    213
  • 访问量
    28328