当前位置: 首页 > news >正文

盘锦做网站多少钱广州seo网络推广员

盘锦做网站多少钱,广州seo网络推广员,行业网站推广外包,游戏推广怎么做目录 一、函数式编程1.1 什么是函数式编程1.2 函数式编程特征1.2.1 纯函数1.2.2 函数是一等公民 1.3 函数式编程在java中的实践 参考资料 一、函数式编程 1.1 什么是函数式编程 函数式编程#xff08;Functional Programming#xff09;是一种编程范式#xff0c;它将计算… 目录 一、函数式编程1.1 什么是函数式编程1.2 函数式编程特征1.2.1 纯函数1.2.2 函数是一等公民 1.3 函数式编程在java中的实践 参考资料 一、函数式编程 1.1 什么是函数式编程 函数式编程Functional Programming是一种编程范式它将计算视为数学函数的求值强调使用纯函数和不可变数据。 除了函数式编程之外, 还有 命令式编程声明式编程 等编程范式。 在函数式编程中函数是一等公民它可以作为参数传递给其他函数也可以作为返回值返回。函数式编程避免了副作用Side Effects和共享状态这样可以提高代码的可维护性、可测试性和并发性。 1.2 函数式编程特征 以下是函数式编程的一些主要特征 纯函数Pure Functions 函数的输出只依赖于输入不依赖于任何外部状态或可变数据。相同的输入始终产生相同的输出而且没有副作用。不可变数据Immutable Data 数据一旦被创建就不能被更改。如果需要修改数据通常会创建一个新的数据副本。函数是一等公民First-Class Functions 函数跟其它的数据类型一样处于平等地位可以被当作参数传递给其他函数也可以被作为返回值返回。高阶函数Higher-Order Functions 函数可以接受一个或多个函数作为参数并且可以返回一个函数。递归Recursion 在函数式编程中递归是一种常见的控制结构因为循环通常依赖于可变状态而函数式编程强调不可变性。Lambda 表达式 Lambda 表达式是一种匿名函数它允许在代码中直接定义简短的函数。惰性求值Lazy Evaluation 只在需要时计算表达式的值而不是在每个可能的地方都计算。模块化和组合性Modularity and Compositionality 将问题分解为小的、可复用的函数通过组合这些函数来构建更复杂的功能。 函数式编程最重要的特征是 纯函数 和 函数是一等公民 函数式编程不是一个特定语言的概念而是一种编程风格或哲学。虽然一些编程语言如Haskell、Scala、Clojure更天然地支持函数式编程但在越来越多的编程语言中如Java、JavaScript、Python也引入了函数式编程的特性。函数式编程的思想对于处理并发、提高代码可维护性和表达力都有很大的帮助。 1.2.1 纯函数 纯函数是指相同的输入总会得到相同的输出并且不会产生副作用的函数。纯函数的两个特点 相同的输入必有同输出。无副作用。无副作用 指的是函数内部的操作不会对外部产生影响如修改全局变量的值等。 举个例子 public class Person{private int a 1;public int add(int b){return a b;}public int pow(int c){return c * c;}public static void main(String[] args){Person p new Person();p.add(1);p.pow(2);} }上面代码中add(int b)这个方法就不符合函数式编程这个函数调用后的结果不确定它的结果不仅取决于b还取决于字段a。而pow(int c)这函数就是符合函数式编程的典范只要调用它输入的值c确定了返回值就肯定确定了。 1.2.2 函数是一等公民 在编程语言中将函数视为一等公民First-Class Citizen意味着函数具有以下特性 可以赋值给变量 可以将函数赋值给变量使得函数可以像其他数据类型一样在程序中被存储和传递。可以作为参数传递 可以将函数作为参数传递给其他函数这使得函数可以参与更高阶的操作如函数的组合和转换。可以作为返回值 函数可以作为其他函数的返回值使得函数可以生成和返回其他函数。可以存储在数据结构中 函数可以存储在数组、列表、集合等数据结构中允许对函数进行组织和管理。 在支持函数作为一等公民的编程语言中函数与其他数据类型如整数、字符串等具有相同的地位可以像操作其他数据一样灵活地使用。这种特性是函数式编程风格的核心之一。 举个简单的例子假设有一个接受两个整数和一个函数作为参数的函数 operate FunctionalInterface public interface IntBinaryOperator {int applyAsInt(int left, int right);// 其他默认方法和静态方法... }public class FunctionAsFirstClassCitizenExample {// 函数作为参数public static int operate(int a, int b, IntBinaryOperator operator) {return operator.applyAsInt(a, b);}// 函数作为返回值public static IntBinaryOperator getOperator(String operation) {switch (operation) {case :return (x, y) - x y;case -:return (x, y) - x - y;case *:return (x, y) - x * y;default:throw new IllegalArgumentException(Unsupported operation: operation);}}public static void main(String[] args) {// 函数赋值给变量IntBinaryOperator addition (x, y) - x y;// 函数作为参数传递int result operate(5, 3, addition);System.out.println(Result of addition: result);// 函数作为返回值IntBinaryOperator selectedOperator getOperator(*);// 调用返回的函数int result2 operate(4, 2, selectedOperator);System.out.println(Result of multiplication: result2);}} 在这个例子中IntBinaryOperator 是 Java 中的一个函数式接口用于表示接受两个整数参数并返回一个整数结果的操作。它定义了一个抽象方法 applyAsInt(int left, int right)用于执行具体的整数操作。函数 operate 接受两个整数和一个函数作为参数函数 getOperator 返回一个函数。。这展示了函数作为一等公民的特性可以方便地传递和组合。 1.3 函数式编程在java中的实践 Java 8 引入了对函数式编程的支持主要通过以下几个特性来实现 Lambda 表达式 Lambda 表达式是 Java 8 中引入的一个重要特性它使得能够以更为简洁的方式表示匿名函数。Lambda 表达式可以用来实现函数式接口只包含一个抽象方法的接口。 javaCopy code// 旧的方式使用匿名内部类 Runnable runnable1 new Runnable() {Overridepublic void run() {System.out.println(Hello, World!);} };// 使用 Lambda 表达式 Runnable runnable2 () - System.out.println(Hello, World!);函数式接口 函数式接口是一个只包含一个抽象方法的接口。Java 8 引入了 FunctionalInterface 注解来标识函数式接口以便编译器检查。常见的函数式接口包括 Runnable、Callable、Comparator 等。 javaCopy codeFunctionalInterface interface MyFunction {void apply(); }Stream API Stream API 提供了一种对集合进行声明式操作的方式支持函数式编程风格的数据处理。它允许对集合进行过滤、映射、归约等操作而不需要显式使用循环。 javaCopy codeListString words Arrays.asList(apple, banana, orange);// 使用 Stream 进行操作 long count words.stream().filter(word - word.length() 5).count();默认方法和静态方法 接口中引入的默认方法和静态方法使得在接口中引入新方法变得更为灵活。这对于在函数式编程中向接口添加新功能非常有用而不会破坏现有实现。 javaCopy codeinterface MyInterface {default void defaultMethod() {System.out.println(Default method);}static void staticMethod() {System.out.println(Static method);}void abstractMethod(); }Optional 类 Optional 类是 Java 8 引入的一个用于处理可能为 null 的值的容器类。它通过一系列的函数式方法来支持更安全、更函数式的处理空值的方式。 javaCopy codeOptionalString name Optional.ofNullable(getName()); String result name.orElse(Unknown);这些特性使得 Java 在某种程度上支持函数式编程范式尽管 Java 仍然是一门面向对象编程的语言。除了以上特性一些第三方库如Guava和Vavr提供了更多函数式编程支持的工具和数据类型。在 Java 9、Java 10 和 Java 11 中也进一步增强了函数式编程的支持例如引入了模块化系统和新的集合操作方法。 参考资料 什么是「函数式编程」 - 知乎 (zhihu.com) 详解Java中的三种函数式编程以及具体的实现方法 | w3cschool笔记
http://www.sadfv.cn/news/21019/

相关文章:

  • 商丘市网站建设洛阳哪有做公司网站的
  • 网站未来发展规划网站建设零基础教材免费下载
  • 为什么我的网站百度不收录网站开发常见问题
  • 衡阳网站搜索引擎优化唯品会专门做特卖的网站
  • 文明网站建设管理培训心得制作视频的软件app免费下载
  • 做app网站的软件创建全国文明城市工作方案
  • 上海营销型网站建设asp网站背景
  • 网站建设与管理课程网站建设大概多少钱
  • 网站方案原则江门网站制作推广
  • 织梦网站被黑雁塔区建设局网站
  • 吕梁网站建设泉州百度推广咨询
  • 湖北住房和城乡建设厅官方网站番禺手机网站制作推广
  • 山东建设厅网站扫黑北京seo代理商
  • 外贸官方网站建设做外贸好还是跨境电商好
  • 深圳网站域名山西网站建设报价单
  • 济南中建设计院有限公司网站淄博seo费用
  • 正规网站建设找哪家网站开发语言 排行榜
  • 那些cps网站做的比较好app怎样下载安装
  • 网站怎么做限时抢购东莞东城社保局电话
  • 什么是网站分析创建快捷方式app下载
  • 商城网站 搭建网页建站系统
  • 茂名建站公司模板wordpress模板知更鸟
  • 360网站怎么做链接基层网站建设作用
  • 网站建设美词原创网站点击弹出下载框 怎么做的
  • 网站建设策划案怎么写西安西郊网站建设
  • 玉溪网站建设网站建设免费发布推广的平台有哪些
  • 网站后端技术语言wordpress访问格式丢失
  • iptc网站开发工程师asp考试试题答案如何建设网络营销渠道
  • 珠宝网站形象设计郑州网络推广专业公司
  • 代理ip访问网站潍坊网站排名优化