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

协作网站是什么网络营销做得好的酒店

协作网站是什么,网络营销做得好的酒店,ui设计可以在ipad上面做嘛?,做二手货车网站函数式编程函数式编程是一种编程方式#xff0c;它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus)#xff0c;λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 函数式编程是结构化编程的一种#xff0c;主要思想是把运…函数式编程函数式编程是一种编程方式它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus)λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 函数式编程是结构化编程的一种主要思想是把运算过程尽量写成一系列嵌套的函数调用。lambda表达式JSR-335首次定义了在Java中使用lambda表达式的基本规范当前的实现就是针对JSR-335规范的。 lambda表达式是一种紧凑的、传递行为的方式。Lambda表达式本质上是为了解决方便的将代码作为数据传递的难题。从本质上讲lambda表达式就是一种将行为参数化的操作。在JDK8之前需要利用匿名内部类来实现的传递行为的操作现在可以用lambda表达式来实现了。 从编码的角度讲lambda表达式是一个代码块以及必须传入代码的变量规范。由于规范基本一致所以Java中的lambda表达式和JavaScript中的在使用上几乎完全一样。所差别的只是胖箭头和瘦箭头而已。当然由于语言特性的问题两种lambda表达式的实际差距还是很大的这种差距表现在在Java中lambda表达式本身是有类型的。也就是说要传递的行为必须是有类型的这种类型就是函数接口。除了传参之外lambda表达式也可以出现在赋值符号的右边。lambda表达式的语法 lambda表达式由参数、箭头、表达式组成。(parameters) - expression //此处行为为表达式这里隐含了return语句。或者(parameters) - { statements; } //此处行为为语句需要返回时要手写return语句。1如果代码无法在一个表达式中完成可以像写方法一样把代码放在大括号中。只有一行代码的Lambda表达式也可以使用大括号。()-{...}2没有参数时也要提供一个空的小括号。如果只有一个参数而且这个参数的类型可以推导也可以省略小括号。Lambda表达式也可以包含多个参数(param)-expressionparam-expression3大部分情况中无需指定lambda表达式的返回类型。具体的返回类型可以由上下文推断得出。这种类型推导实际上是Java7中的目标类型推断的扩展。在Java7中以下代码是合法的这是泛型的又一个升级。Map mapnew HashMap(); //不用声明HashMap的中的键值对类型系统可以通过Map的相关类型推断出来。这就是所谓的类型推断。4lambda表达式中只在某些分支返回值另一个些分支不返回值是不合法的。5与JavaScript相同lambda表达式只有一个入参时可以省略小括号。exampleBinaryOperator add(x,y)-xy; //创建一个函数用来计算x和y相加的结果。注意add不是两个数字的和而是将两个数字加相的那行代码。System.out.println(add.apply(1l,2l)); //打印3解析binaryOperator是一个接口其含义进行一次两数据的某种操作并返回这个操作的结果。其抽象方法来自父接口BiFunction。BiFunction接口是不同数据类型的操作、而binaryOperator接口是针对相同类型数据的操作。public interface BiFunction {R apply(T t, U u);}public interface BinaryOperator extends BiFunction{}需要注意的是 Lambda表达式中引用的在表达式之外定义的局部变量必须是final或既成事实上的final变量。 这个约束性的规定来源于java 8之前的匿名内部类java 8放宽了这个规定既局部变量可以不加final关键字但依然不能给该变量多次赋值。函数接口函数接口是只有一个抽象方法的接口用作Lambda表达式的类型。也就是说所谓的Lambda表达式对应的其实就是函数接口。 java8提供FunctionalInterface注解函数接口当然这个注解是非必须的只要接口符合函数接口的标准(即只包含一个抽象方法的接口)即可。 函数式接口的抽象方法签名基本上就是Lambda表达式的签名这种抽象方法叫作函数描述符。 几个重要的函数式接口它们都位于java.util.function包中Predicate接口FunctionalInterfacepublic interface Predicate{boolean test(T t);}Consumer接口FunctionalInterfacepublic interface Consumer{void accept(T t);}BiConsumer接口FunctionalInterfacepublic interface BiConsumer {void accept(T t, U u);}Function接口FunctionalInterfacpublic interface Function{R apply(T t);}为避免在使用原始类型时进行自动拆、装箱操作jdk8提供了以上函数式接口的原始类型版本。IntPredicate、DoublePredicate等Supplier接口FunctionalInterfacepublic interface Supplier {T get();}BinaryOperator接口BinaryOprator接口继承自BiFunction接口其接口方法源型如下R apply(T t, U u);方法引用方法引用是lambda表达式的一种简化写法。当要调用的方法是一个已经存在的方法时可以使用方法引用。使用方法引用替换整个Lambda表达式。 语法为左边是容器(可以是类名实例名)中间是::右边是相应的方法名(不带小括号)。ObjectReference::methodName一般方法的引用格式调用静态方法ClassName::methodName。如 Person::compareByAge调用实例方法Instance::methodName。如System.out::println;调用参数的实例方法ClassName::methodName。Object::equals;调用构造方法ClassName::new 。如Person::new;注意当匿名方法有参数并且lambda表达式就是调用参数中的方法的时候可以直接用参数的类名做为容器。如下List collectedStream.of(a,b,hello).map(string-string.toUpperCase).collect(Collectors.toList());//注意这里使用了方法引用List collectedStream.of(a,b,hello).map(String::toUpperCase).collect(Collectors.toList());本质上讲方法引用是Lambda表达式的快捷写法。当这个Lambda表达式代表的只是直接调用某个已经存在的方法时使用。可以把方法引用当作针对仅涉及单一方法的Lambda的语法糖。forExamplepublic class LambdaExample {public static void main(String[] args) {List names Arrays.asList(peter, anna, mike, xenia);/*匿名内部类的方式Collections.sort(names, new Comparator() {Overridepublic int compare(String a, String b) {return b.compareTo(a);}});*//*lambda表达式Collections.sort(names, (a,b) - {return b.compareTo(a);});*///简易写法Collections.sort(names, (a, b) - b.compareTo(a));//进一步简写Collections.sort(names,String::compareTo);for(String s:names){System.out.println(s);}}}public class ThreadExample {public static void main(String[] args) {Thread threadnew Thread(()-{for(int i0;i10;i){System.out.println(i);}});thread.start();}}每一个lambda表达式都对应一个类型通常是接口类型。而“函数式接口”是指仅仅只包含一个抽象方法的接口每一个该类型的lambda表达式都会被匹配到这个抽象方法。因为默认方法不算抽象方法所以你也可以给你的函数式接口添加默认方法。 我们可以将lambda表达式当作任意只包含一个抽象方法的接口类型确保你的接口一定达到这个要求你只需要给你的接口添加 FunctionalInterface 注解编译器如果发现你标注了这个注解的接口有多于一个抽象方法的时候会报错的。FunctionalInterfaceinterface Converter {T convert(F from);}Converter converter (from) - Integer.valueOf(from);Integer converted converter.convert(123);System.out.println(converted); // 123下一篇lambda2讲解具体的API语法以及应用场景。Java8中lambda表达式的语法别人都会的你还不会吗「二」
http://www.zqtcl.cn/news/172500/

相关文章:

  • 开发区网站建设公司wordpress中文官网
  • 购物网站项目经验搭建网站流程
  • 网站建设企业蛋糕怎么做网站里导出没有水印的图
  • 享设计网做兼职设计师怎么样何鹏seo
  • 淘宝联盟网站推广位怎么做网站建设小知识
  • 徐州有办网站的地方吗企业做网站多少钱
  • 地铁公司招聘信息网站通江县网站建设
  • 家具网站 模板上海虹口建设局官方网站
  • 网站建站建设哪家好wordpress全站静态
  • 旅游网站建设策划seo顾问多少钱
  • 个人网站注册平台要多少钱彩票网站开发 违法
  • 贵州城乡住房和建设厅网站易企秀网站开发语言
  • 返利网站做鹊桥推广免费的舆情网站入口在哪
  • 网站商城怎么做wordpress图片采集插件
  • 做美团网站代码swoole+wordpress
  • 百度免费资源网站搭建发卡网站要多少钱
  • ip网站怎么做酷家乐手机版
  • cnzz统计代码如何添加到网站上去照片网站源码
  • 我的世界电影怎么做的视频网站网页布局实训心得体会
  • 网站建设公司内部情况凡客诚品陈年
  • 浙江建设职业技术学院迎新网站商务网站建设体会
  • 做网站的目的与意义做家教去什么网站
  • 相城网站建设为什么网站建设价格不一
  • 网站icp备案手续我做的网站平台百度搜不到
  • 本溪网站设计公司ps转页面wordpress插件
  • 怎么做短链接网站搜索引擎优化的各种方法
  • 自己做网站怎么挣钱微网站建站系统源码
  • 湖北省网站备案最快几天网站建设存在的具体问题
  • 网站建设算固定资产吗做网站都需要什么软件
  • ui设计培训是什么seo外链网站源码