# 内置函数
# 功能说明
平台的内置函数功能可用于处理特定的场景下的需求,如类型转换、字符串处理,对日期与时间的处理,对数组的处理等。
# 类型转换与格式化函数
函数名称 | 输入参数 | 功能介绍 |
---|---|---|
Convert | value:选择变量或常量 ConverTo:选择转换后的数据类型 | 各基础数据类型之间转换 |
FormatDate | date:指定需要格式化日期的字段 formatter:格式化规则,默认为yyyy-MM-dd,即年月日格式 | 返回格式化日期字符串,支持调整间隔符或删除部分内容,如仅保留MM-dd则仅展示月日 |
FormatDateTime | date:指定需要格式化日期时间的字段 formatter:格式化规则,默认为yyyy-MM-dd HH:mm:ss,即年月日时分秒格式 | 返回格式化日期时间字符串,支持调整间隔符或删除部分内容,如仅保留MM-dd则仅展示月日查看示例 |
FormatNumber | value:指定需要格式化小数位数的字段 digits:保留小数位数 showGroups:是否显示千分位,true为显示,false为不显示 | 返回格式化的数字字符串 |
FromString | value:指定需要转换的变量或常量,String类型 ConvertTo:指定转换后的数据类型 | 支持将String类型转换为其他类型 |
ToString | value:指定需要转换的变量或常量 | 支持将其他类型的变量或常量转换为String类型 |
# 字符串函数
函数名称 | 输入参数 | 功能介绍 |
---|---|---|
Concat | str1:指定字符串1 str2:指定字符串2 添加参数:支持添加str3、str4、str5等进行字符串拼接,后标数字越小排列越前 | 将所有字符串参数连接并返回连接后的字符串 |
IndexOf | str:指定字符串 search:指定需要搜索的字段,String类型 fromIndex:开始搜索的索引值,Integer类型,用数字表示第几项,项数索引从0开始 ignoreCase:是否忽略大小写,true为忽略,false为不忽略 | 从指定的索引开始搜索字符串中指定字段所在位置,返回第一个找到该字段的索引值,若找不到该字段,则返回-1 |
Join | list:指定列表 separator:连接符,用于连接列表中的项 | 将列表的项,用连接符连接成一个字符串,并返回 |
LastIndexOf | str:指定字符串 search:指定需要搜索的字段,String类型 ignoreCase:是否忽略大小写,true为忽略,false为不忽略 | 从末尾开始搜索字符串中指定字段所在位置,返回第一个找到该字段的索引值,若找不到该字段,则返回-1 |
Length | param:指定字符串 | 返回字符串长度 |
Replace | str:指定原始字符串 search:指定原始字符串中需要被替换的字符串 replace:指定进行替换操作的字符串 | 字符串替换并返回替换后的字符串 例子: str:'abcdefg' search:'ab' replace:'11' 输出结果:'11cdefg' |
Split | str:指定字符串 separator:指定字符串中作为分隔符的参数 | 将字符串用分割符分割成字符串列表,并返回 例子: str:''姓名a籍贯a年龄'' separator:'a' 输出结果:["姓名","籍贯","年龄"] |
SubString | str:指定需要截取的字符串 start:int类型,输入数字指定开始截取的位置 length:指定截取的字符串长度 | 字符串截取并输出截取后的字符串 例子: str:'abcdefg' start:3 length:3 输出结果:'def' |
ToLower | str1:指定字符串 | 返回全部小写的字符串 |
ToUpper | str1:指定字符串 | 返回全部大写的字符串 |
Trim | str1:指定字符串 | 返回删除前后空格的字符串 |
# 日期与时间函数
函数名称 | 输入参数 | 功能介绍 |
---|---|---|
AddDays | dateTime:指定日期时间 amount:增加的天数 | 返回天数加法计算结果 |
AddMonths | dateTime:指定日期时间 amount:增加的月数 | 返回月份加法计算结果 |
CurrDate | - | 返回当前日期 |
CurrDateTime | - | 返回当前日期时间 |
CurrTime | - | 返回当前时间 |
DateDiff | dateTime1:指定日期时间1 dateTime2:指定日期时间2 calcType:计算类型。计算两个日期时间之间的差值,支持年数、季度数、月数、星期数、天数、小时数、分钟数、秒数 | 根据选择的计算类型,返回两个日期时间之间的差值 例子: dateTime1:2023-02-09T16:00:00.000Z dateTime2:2023-02-04T16:00:00.000Z calcType:天数 输出结果:5 |
# 列表(List)函数
函数名称 | 输入参数 | 功能介绍 |
---|---|---|
Add | list:指定列表 item:指定需要在列表末尾增加的项 | 在列表末尾追加项 例子: list:[0,1,2,3,4] item:5 输出结果:[0,1,2,3,4,5] |
AddAll | list:指定列表1 addList:指定列表2 | 将列表2中的项加到列表1的末尾,并返回追加项后列表1的长度 例子: list:[0,1,2,3,4] addList:[7,8,9,10] 输出结果:列表1变更为[0,1,2,3,4,7,8,9,10],同时输出返回值9 |
Average | list:指定数值类型列表 | 返回数值列表中所有项的平均值 |
Contains | list:指定列表 item:指定项 | 测试列表是否包含某一项,返回测试结果,若包含则返回true,不包含则返回false |
CreateListPage | list:指定列表 total:指定数据的条数 | 将List<T>列表转换为列表分页 |
Distinct | list:指定列表 | 为列表去除重复项 |
DistinctBy | list:指定列表 by:指定列表中项的某个属性,若项无属性,则该函数不生效 | 按by挑中中项的属性为列表去除重复项 |
Filter | list:指定列表 by:指定列表中项的某个属性或项本身,通过算数运算、比较运算或逻辑运算进行条件判断并输出布尔值 | 返回列表中符合条件的所有项 |
Find | list:指定列表 by:指定列表中项的某个属性或项本身,通过算数运算、比较运算或逻辑运算进行条件判断并输出布尔值 | 返回列表中第一个符合条件的项 |
FindIndex | list:指定列表 by:指定列表中项的某个属性或项本身,通过算数运算、比较运算或逻辑运算进行条件判断并输出布尔值 | 返回列表中第一个符合条件的项的索引值,若找不到符合条件的项,则返回-1 |
Flatten | list:指定列表 | 将嵌套列表摊平一层并返回 |
Get | list:指定列表 index:索引,integer类型,用数字表示第几项,项数索引从0开始 | 获得列表位于指定索引处的项 例子: list:[0,1,2,3,4] index:3 输出结果:3 |
GroupBy | list:指定列表 by:指定列表中项的某个属性,若项无属性,则该函数不生效 | 按列表中项的某个属性为列表分组,以选中的属性为key,原项作为value生成Map。 例子: list:[{age: 18, name: z}, {age: 18, name: zz}, {age: 20, name: zzz}] by:age 输出结果:Map{18 → [{age: 18, name: z}, {age: 18, name: zz}], 20-->[{age: 20, name: zzz}] } |
Head | list:指定列表 | 返回列表的首项 |
Insert | list:指定列表 index:索引,integer类型,用数字表示第几项,项数索引从0开始 item:待插入项 | 在列表的指定索引处插入新项(原索引项依次后推) |
Last | list:指定列表 | 返回列表的末项 |
Max | list:指定数值类型列表 | 返回数值列表中所有项的最大值 |
Min | list:指定数值类型列表 | 返回数值列表中所有项的最小值 |
Product | list:指定数值类型列表 | 返回数值列表中所有项的积 |
Remove | list:指定列表 item:指定项 | 删除列表中的某项 |
RemoveAt | list:指定列表 index:索引,integer类型,用数字表示第几项,项数索引从0开始 | 在列表中删除位于指定索引的项 |
Reverse | list:指定列表 | 将列表的所有项反向排列 |
Set | list:指定列表 index:索引,integer类型,用数字表示第几项,项数索引从0开始 item:列表指定索引下的新项 | 为列表指定索引赋值(覆盖原索引项) |
Slice | list:指定列表 start:切片起始的索引,integer类型,项数索引从0开始 end:切片结束的索引,integer类型,用数字表示第几项,项数索引从0开始 | 将列表按照规则切片,返回切片后的子列表 例子: list:[0,1,2,3,4,5] start:3 end:5 输出结果:[3,4] |
SliceToListPage | list:指定列表 page:页数,integer类型,从1开始 size:每页的大小,integer类型 | 将列表按照规则切片,返回切片后的列表分页 |
Sort | list:指定列表 by:指定列表中项的某个属性或项本身,支持算数运算和比较运算 sort:支持升序或降序设置,asc为升序,desc为降序。 | 为列表按指定规则排序查看示例 |
Sum | list:指定列表 | 返回数值列表中所有项的和 |
ToMap | list:指定列表 by:根据项的属性及其本身进行key和value的定义 | 指定列表List,选取项的属性或自身作为key,选取T的属性或自身作为value,构成Map。 |
Transform | list:指定列表 by:指定对列表中项的某个属性或项本身的处理方式,支持算数运算和比较运算 | 对列表的每一项调用函数by,得到新项,最终返回新项构成的列表 |
# 映射(Map)函数
函数名称 | 输入参数 | 功能介绍 |
---|---|---|
Contains | map:指定映射 key:指定参数key | 指定Map中是否存在参数key的键值对,返回布尔值 |
Filter | map:指定映射 by:针对键值对的参数key和value设置过滤条件,支持算数运算、比较运算和逻辑运算 | 在指定的Map中过滤出符合条件参数的键值对,并返回由所有符合条件的键值对构成的新Map |
Get | map:指定映射 key:指定参数key | 查询出Map中key为指定值的value值列表 |
Keys | map:指定映射 | 输出Map中key的列表 |
Put | map:指定映射 key:指定参数key value:指定参数value | 为Map中添加键值对 |
Remove | map:指定映射 key:指定参数key | 删除Map中的键值对 |
Transform | list:指定映射 by:指定映射中键值对的参数处理方式,支持算数运算和比较运算 | 对Map的每一项调用函数by,得到新项,最终返回新项构成的Map |
Values | map:指定映射 | 输出Map中Value的列表 |
# 枚举函数
函数名称 | 输入参数 | 功能介绍 |
---|---|---|
EnumToList | enum:指定枚举 | 返回枚举中枚举值value和标题text的List集合 |
EnumValueToText | value:指定需要将枚举值转换为标题的字段 enum:指定枚举 | 返回枚举中指定枚举值value的标题text字符串查看示例 |
StringToEnumValue | value:指定一个字符串 enum:指定枚举 | 将指定的字符串和指定枚举中的枚举值value进行匹配,确认指定枚举中是否存在与该指定字符串相同的枚举值value: 若存在相同的枚举值value,则返回枚举类型的value值 若不存在相同的枚举值value,则返回null |
# 其他函数
函数名称 | 输入参数 | 功能介绍 |
---|---|---|
Clear | struct:指定对象 | 清除对象数据 |
Clone | struct:指定对象 | 复制一个所选参数的实例 |
New | New:选择一个数据类型 | 创建一个所选数据类型的实例 |
RandomInt | start:起始数字,Integer类型 end:截止数字,Integer类型 | 在参数限制范围内产生随机整数 |
# 常用内置函数举例
# 枚举值转换为标题函数EnumValueToText
需要显示枚举类型的数据时,直接取值则会显示数据库实体表中的value,而非枚举标题,不易于用户阅读使用,如下图所示:
若需要将枚举值value转换为标题,则可使用内置函数EnumValueToText。
value:指定需要将枚举值转换为标题的字段。
enum:指定枚举。
通过内置函数转换后结果如下图所示:
# 格式化日期时间FormatDateTime
1. 如果直接获取数据库中存储的时间结果如下图所示,不利于阅读:
2. 使用内置函数格式化数据库中存储的时间。
3. 通过内置函数转化后结果如下图所示:
# 字符串排序函数Sort
以List<Product>集合为例进行排序,Product实体包含如下属性:
常见用法示例
按单价升序:
按先类别后单价升序: