【干货】Java函数式编程公式大全,收藏学习!

函数操作是现代编程领域中的核心概念之一,它以类似 Excel 表格的方式进行数据处理和计算。它的特点是使用公式和函数来描述数据之间的关系和计算逻辑;它允许我们以更高效、更有组织的方式管理和处理数据。

在函数式编程中,数据被组织成表格的形式,每列代表一个数据字段或变量,每行代表一个数据记录。可以通过公式和函数将不同的数据字段进行计算和操作,生成新的计算结果。

JVS-rules规则中函数可灵活应用,可自行扩展,对于数据收集也有很多作用:

(1)可以提高效率,将一些数据自动计算出来,减少需要填写的内容

如,分数在 90 以上时等级为 A,否则为 B。那么在输入分数之后,等级是 A 或 B 就能根据公式自动判断出来。

(2)可以减少错误

如,当前库存总数量=入库数量-已出库数量。那么在入库数量、已出库数量输入之后,当前库存总数量就能根据公式自动计算出来,避免手工计算出错。

基础变量的函数操作(部分)如下:

|-----------------|----------|----------------------------------------------------------------------------------|----------|-------------------------------------------------|
| 函数 | 函数分类 | 说明 | 说明 | 上手实例 |
| EQ | 逻辑函数 | 两个值比较,相等返回 true,默认忽略大小写,若不忽略,则填写第三个参数true | 2个,必填 | EQ(value1,value2) |
| NE | 逻辑函数 | 两个值比较,不相等返回 true,默认忽略大小写,若不忽略,则填写第三个参数true | 2个,必填 | NE(value1,value2) |
| LT | 逻辑函数 | value1小于value2返回 true | 2个,必填 | LT(value1,value2) |
| GT | 逻辑函数 | value1大于value2返回 true | 2个,必填 | GT(value1,value2) |
| LE | 逻辑函数 | value1小于等于value2返回 true | 2个,必填 | LE(value1,value2) |
| GE | 逻辑函数 | value1大于等于value2返回 true | 2个,必填 | GE(value1,value2) |
| AND | 逻辑函数 | 当参数组中的所有参数逻辑值为 true 时(逗号隔开的逻辑式子都满足),才返回 true,当参数组中的任何一个参数逻辑值为 false 时,就会返回false。 | 至少1个,必填 | AND(logical1, logical2, ...) |
| OR | 逻辑函数 | 在参数组中,任何一个参数逻辑值为 true(逗号隔开的逻辑式子其中一项满足),即返回 true;只有当所有逻辑参数值为 false,才返回 false。 | 至少1个,必填 | OR(logical1,logical2, ...) |
| NOT | 逻辑函数 | 对参数逻辑值求反。NOT 比较简单,就是把括号里为 true 的值变成 false,括号里为 false 的值变为 true。 | 1个,必填 | NOT(logical) |
| IF | 逻辑函数 | 判断一个条件能否满足;如果满足返回一个值,如果不满足则返回另外一个值 | 3个,必填 | IF(A,B,C) |
| ISEMPTY | 逻辑函数 | 判断一个字段是否为空;如果为空,则返回 true;如果不为空则返回 false | 1个,必填 | ISEMPTY(字段) |
| CONCATENATE | 文本函数 | 将多个字符串拼接合成一个文本字符串 | 至少1个,必填 | CONCATENATE(text1,text2, ...) |
| LEFT | 文本函数 | 从一个文本字符串的第一个字符开始返回指定个数的字符,如果文本长度小于自定字符个数,就将原始文本返回 | 2个,必填 | LEFT(text,num_chars) |
| RIGHT | 文本函数 | 从一个文本字符串的最后一个字符开始返回指定个数的字符,如果文本长度小于自定字符个数,就将原始文本返回 | 2个,必填 | RIGHT(text,num_chars) |
| LEN | 文本函数 | 返回文本字符串中的字符个数 | 1个,必填 | LEN(text) |
| LOWER | 文本函数 | 将一个文本字符串中的所有大写字母转换为小写字母 | 1个,必填 | LOWER(text) |
| UPPER | 文本函数 | 将一个文本字符串中的所有小写字母转换为大写字母 | 1个,必填 | UPPER(text) |
| REPLACE | 文本函数 | 根据指定的字符数,将部分文本字符串替换为不同的文本字符串 | 1个,必填 | REPLACE(oldtext, startnum, numchars, newtext) |
| REPT | 文本函数 | 将文本重复指定次数 | 2个,必填 | REPT(text, number_times) |
| SEARCH | 文本函数 | 在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号,该编号从第二个文本字符串的第一个字符算起。返回 0 则表示未查找到 | 3个,前2个必填 | SEARCH(findtext,withintext,start_num) |
| MID | 文本函数 | 截取文本的有效部分内容 | 3个,必填 | MID(text,start_index,end_index) |
| ISEMPTY | 文本函数 | 判断值是否为空字符串、空对象或者空数组 | 1个,必填 | ISEMPTY(text) |
| ADD | 数学函数 | 计算多个字段值总和 | 至少1个,必填 | ADD(number1, number2, ...) |
| AVERAGE | 数学函数 | 求多个数值的平均值 | 至少1个,必填 | AVERAGE(number1, number2, ...) |
| MAX | 数学函数 | 返回一组数字中的最大值 | 至少1个,必填 | MAX(Number1, Number2, ...) |
| MIN | 数学函数 | 返回一组数字中的最小值 | 至少1个,必填 | MIN(Number1, Number2, ...) |
| ABS | 数学函数 | 当数值为负数的时候返回他的绝对值数值 | 1个,必填 | ABS(Number) |
| ROUND | 数学函数 | 数值出现小数点的时候,将小位数指定到对应的位数 | 2个,必填 | ROUND(number, num_digits) |
| CEILING | 数学函数 | 返回将参数 number 向上舍入(沿绝对值增大的方向)为最接近的指定基数的倍数 | 2个,必填 | CEILING(number, significance) |
| FLOOR | 数学函数 | 将参数 number 向下舍入(沿绝对值减小的方向)为最接近的 significance 的倍数 | 2个,必填 | FLOOR(number, significance) |
| INTNUM | 数学函数 | 将数字向下舍入到最接近的整数 | 1个,必填 | INTNUM(number) |
| LOG | 数学函数 | 根据指定底数返回数字的对数 | 2个,必填 | LOG(number, base) |
| MOD | 数学函数 | 返回 2 个数值组件相除的余数 | 2个,必填 | MOD(number, divisor) |
| POWER | 数学函数 | 计算出数值组件乘幂的值 | 2个,必填 | POWER(number, power) |
| FIXED | 数学函数 | 将数字舍入到指定的小数位数,以十进制数格式对该数进行格式设置,并以数字形式返回结果 | 2个,必填 | FIXED(number, decimals) |
| SQRT | 数学函数 | 取数值组件值正的平方根 | 1个,必填 | SQRT(number) |
| SUM | 数学函数 | 函数使所有以参数形式给出的数字相加并返回和 | 至少1个,必填 | SUM(number1, number2, ...) |
| PRODUCT | 数学函数 | 数字相乘 | 2个,必填 | PRODUCT(number1,number2) |
| SUMPRODUCT | 数学函数 | 在给定的数组中,将数组间对应的元素相乘,并返回乘积之和 | 2个,必填 | SUMPRODUCT(array1, array2) |
| NUMBERCOMPARE | 数学函数 | 数值组件与数值组件2比较,大于返回1,等于返回0,小于返回-1 | 2个,必填 | NUMBERCOMPARE(数值组件1,数值组件2) |
| NOW | 时间函数 | 自此日期起的1970年1月1日,00:00:00 GMT以来的毫秒数。 | 不可填 | NOW() |
| INTERSECTIONSET | 集合函数 | 计算两个集合的交集 | 2个,必填 | INTERSECTIONSET(array1,array2) |
| UNIONSET | 集合函数 | 计算两个集合的并集 | 2个,必填 | UNIONSET(array1,array2) |
| DIFFERENCESET | 集合函数 | 计算两个集合的差集 | 2个,必填 | DIFFERENCESET(array1,array2) |
| SUBSET | 集合函数 | 计算第二个集合是否第一个集合的子集 | 2个,必填 | SUBSET(array1,array2) |
| ARRAYGET | 集合函数 | 返回数据集中第k个值 | 2个,必填 | ARRAYGET(Array, k) |
| LARGE | 集合函数 | 返回数据集中第k个最大值 | 2个,必填 | LARGE(Array, k) |
| SMALL | 集合函数 | 返回数据集中第k个最小值 | 2个,必填 | SMALL(Array,k) |
| USER | 人员类 | 无参数模式:User() 获取当前登录人; | 1个,选填 | USER() |
| USER | 人员类 | 有参数模式:User(level) 当前登录人的主管, level 是 获取当前登录人的主管 | 1个,选填 | USER(level) |
| USERFIELD | 人员类 | 人员搜索框需要联动带出一些基本信息 | 2个,必填 | USERFIELD( 成员 ,"userId"),USERFIELD( 成员 ,"name") |
| GETUSERNAME | 人员类 | 获取当前登录人昵称 | 不可填 | GETUSERNAME() |
| EMPLOYEE | 人员类 | 返回对应的人员信息对象数组(即人员组件底层的值) | 1个,必填 | EMPLOYEE(array1) |
| DIRECTOR | 人员类 | 获取当前登陆人的主管名称 | 1个,必填 | DIRECTOR(level) |
| LOGINUSER | 人员类 | 登录人 | 不可填 | LOGINUSER() |
| LOGINUSERWORKNO | 人员类 | 获取当前登录人员工唯一ID(员工UserID) | 不可填 | LOGINUSERWORKNO() |
| DEPTNAME | 部门类 | 获取指定人所在部门名称 | 1个,必填 | DEPTNAME(userId) |
| COUNT | 通用类 | 统计指定表单提交的数据总数 | 至少1个,必填 | COUNT("表单ID") |

在函数操作中,基础变量起着至关重要的作用。通过了解基础变量与函数操作之间的关系,我们可以更好地掌握函数的使用,提高代码的质量和可维护性。

规则引擎在线demo:http://rules.bctools.cn

gitee地址:https://gitee.com/software-minister/jvs-rules

规则引擎往期干货

规则引擎(JVS-rules):从应用到场景的全面解析

JVS规则引擎复合变量,实现复杂数据加工的利器

jvs-rules规则引擎 2.1.8 新版本功能清单

jvs-rules 规则引擎功能介绍(一)

jvs-rules 规则引擎功能介绍(二)

jvs-rules 规则引擎功能介绍(三)

jvs-rules 规则引擎功能介绍(四)

相关推荐
2501_941875285 小时前
从配置中心到动态管理的互联网工程语法演进与多语言实践分享
开发语言·python
辰烨chenye6 小时前
LeetCode Hot 100 题解 · 普通数组篇
算法·leetcode·职场和发展
hfywmsj6 小时前
广州餐饮铺位招租决策模型:多因子选址系统设计
开发语言·人工智能·python·广州餐饮铺位招租
IT研究室7 小时前
最新大数据毕业设计选题推荐-基于大数据的城市交通流量数据可视化分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·课程设计
面向Google编程8 小时前
Apache Iceberg Variant 类型:v3 半结构化数据不再「二选一」
大数据·后端
lhldsg9 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
大大大大晴天9 小时前
从数仓建模到 AI 数据底座:重新理解数据治理的位置
大数据
jason成都9 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒9 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
hqyjzsb9 小时前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析