Vavr

编程入门 行业动态 更新时间:2024-10-10 08:22:33

<a href=https://www.elefans.com/category/jswz/34/1396730.html style=Vavr"/>

Vavr

Vavr - Java8函数式编程拓展库使用指南目录

  • Maven 项目包管理
  • Vavr 常用对象讲解
    • 1. Tuples 元组
      • 1.1 Create a tuple 创建一个元组
      • 1.2 Map a tuple 改变元组内部元素值
      • 1.3 Transform a tuple 元组转换
    • 2. Functions 方法
      • 2.1 Composition 方法组合
      • 2.2 Lifting 返回值包装
      • 2.3 Partial application 分部应用
      • 2.4 Currying 颗粒性
      • 2.5 Memoization 内存存储
    • 3. Values 值包装
      • 3.1 Option 选项
      • 3.2 Try 尝试执行
      • 3.3 Lazy 惰性加载
      • 3.4 Either 两者之一
      • 3.5 Future 将来
      • 3.6 Validation 校验
    • 4. Collections 集合包装
    • 5. Pattern Matching 模式匹配
      • 5.1 User-Defined Patterns 自定义匹配条件

Vavr是对Java8函数式编程的拓展,提供更丰富的API及更友好的处理思路方式,使我们在使用函数式变成时更加得心应手。

Maven 项目包管理

`<dependency><groupId>io.vavr</groupId><artifactId>vavr</artifactId><version>0.10.4</version>
</dependency>`

Vavr官方文档地址:vavr官方文档
下面我们会对Vavr的常用对象、功能及基本使用做一个讲解。

Vavr 常用对象讲解

1. Tuples 元组

元组是将多个不同类型的数据包裹的一个容器,比如可以将字符串,数字,数组用一个元组包裹,这样即可以通过一个元组变量获取到包括的任一数据。

1.1 Create a tuple 创建一个元组

Tuple2<String, Integer> java8 = Tuple.of("Java", 8); 
String s = java8._1;   // s = Java
Integer i = java8._2;  // i = 8

1.2 Map a tuple 改变元组内部元素值

/*** 这里有两种方式* 方式一:map后多个处理函数* 方式二:map后一个处理函数*/
Tuple2<String, Integer> that1 = java8.map(s -> s.substring(2) + "vr",i -> i / 8
);Tuple2<String, Integer> that2 = java8.map((s, i) -> Tuple.of(s.substring(2) + "vr", i / 8)
);
// 此时that1、that2里 s = vavr, i = 1

1.3 Transform a tuple 元组转换

String that = java8.apply((s, i) -> s.substring(2) + "vr " + i / 8
// 此时that为 vavr 1

2. Functions 方法

这里的Functions类似Java8里的Function,可以说是对Java8Function做的拓展,其中最大的拓展是Java8中的Function只支持定义一个参数和一个结果,但实际运用当中的话我们得有多个参数,那这样Java8的Function中必须得将参数包装成一个Bean,在Bean中去封装多个参数值,而Vavr则直接将其拓展,使Function可以支持多个参数,最多支持8个参数,创建示例如下:

// 创建方式一
Function<Integer, Integer, Integer> sum = (a, b) -> a + b;// 创建方式二
Function2<Integer, Integer, Integer> sum = new Function2<Integer, Integer, Integer>() {@Overridepublic Integer apply(Integer a, Integer b) {return a + b;}
};// 创建方式三
Function3<Integer, Integer, Integer> sum = Function3.of((a, b) -> a + b);

2.1 Composition 方法组合

组合前:

Function1<Integer, Integer> func1 = a -> a + 1;
Function1<Integer, Integer> func2 = a -> a * 2;
Function1<Integer, Integer> func3 = func1.andThen(func2);
System.out.println(func3.apply(2));  // (2 + 1) * 3 = 6

组合后:

Function1<Integer, Integer> func1 = a -> a 

更多推荐

Vavr

本文发布于:2024-02-25 07:44:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1698263.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Vavr

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!