CloudFlow的流程定義語言提供部分內建函數,您可以使用內建函數執行基本的資料處理操作。本文介紹CloudFlow常見的內建函數。
索引
CloudFlow的流程定義語言中,根據資料處理任務的類型,將內建函數分為以下幾類。
通用操作
數組操作
Map操作
資料編碼與解碼
雜湊計算與UUID產生
JSON資料操作
IO構造中,如果要使用內建函數,需要在流程定義語言支援的構造器的Key的末尾添加.$,用於表示對應的Value為運算式,需要進行運算式解析,否則將會作為字串處理。當前IO構造中,最多支援10層的內建函數嵌套。
系統內建函數
以下為CloudFlow的系統內建函數,您可以直接使用。
arrayContains
介紹:用於判斷數組中是否包含某元素。
參數:
[]any傳回值:
bool使用樣本:
arrayContains(["Tom",10],10)
arrayContains(["Tom",10],"Jack")輸出樣本:
true
falsearrayUnique
介紹:用於刪除數組中的重複元素。
參數:
[]any傳回值:
[]any使用樣本:
arrayUnique([1, 2, 3, 1])輸出樣本:
[1, 2, 3]format
介紹:使用{}預留位置文法進行格式化。
參數:
string, ...any
模板,參數列表傳回值:
string使用樣本:
format("hello {}","world")輸出樣本:
"hello world"fromBase64
介紹:用於對字串進行Base64解碼。
參數:
string傳回值:
string使用樣本:
fromBase64("Rm5G")輸出樣本:
"FnF"stringToJson
介紹:用於將JSON字串轉換為JSON對象或映射(map)。
參數:
string傳回值:
map[string]any使用樣本:
stringToJson('{"name": "Tom", "age": 10}')輸出樣本:
{"name": "Tom", "age": 10}hash
介紹:用於使用特定演算法產生輸入的hash值。
參數:
string,string
輸入,演算法
MD5
SHA-1
SHA-256
SHA-512傳回值:
string使用樣本:
hash("abc","MD5")輸出樣本:
"900150983cd24fb0d6963f7d28e17f72"jsonMerge
介紹:用於將兩個JSON對象或映射(map)合并。
參數:
map[string]any,map[string]any傳回值:
map[string]any使用樣本:
jsonMerge({"name": "Tom", "age": 10},{"name": "Tom", "address": "beijing"})輸出樣本:
{"name": "Tom", "age": 10, "address": "beijing"}length
介紹:用於擷取array、map和string的長度。
參數:
[]any
map[string]any
string傳回值:
int使用樣本:
length([1, 2, 3])
length({"name": "Tom", "age": 10})
length("name") 輸出樣本:
3
2
4mapKeys
介紹:用於將JSON對象或映射(map)中的Key抽取為數組。
參數:
map[string]any傳回值:
[]string使用樣本:
mapKeys({"name": "Tom", "age": 10})輸出樣本:
["name","age"]mapValues
介紹:用於將JSON對象或映射(map)中的Value抽取為數組。
參數:
map[string]any傳回值:
[]any使用樣本:
mapValues({"name": "Tom", "age": 10})輸出樣本:
["Tom",10]mapValuesPartition
介紹:用於將JSON對象或映射(map)中的Value抽取為數組,並將結果按照一個步進切割為多個數組。
參數:
map[string]any傳回值:
[][]any使用樣本:
mapValuesPartition({"name": "Tom", "age": 10},1)輸出樣本:
["Tom"],[10]regexMatchString
介紹:用於使用簡單的Regex匹配字串函數。
參數:
string, string
運算式,待匹配值傳回值:
bool使用樣本:
regexMatchString("p([a-z]+)ch", "peach")
regexMatchString("p([a-z]+)ch", "p123ch")輸出樣本:
true
falsesplit
介紹:用於將字串按照指定分隔字元切分。
參數:
string,string傳回值:
[]string使用樣本:
split("item1,item2,item3", ",") 輸出樣本:
["item1", "item2", "item3"]toArray
介紹:用於將任意長度的入參轉換成一個數組返回。
參數:
any傳回值:
[]any使用樣本:
toArray(1,'strig',$Input.var)輸出樣本:
[]any{1, 'string', $valueOfVar}toBase64
介紹:用於對字串進行Base64編碼。
參數:
string傳回值:
string使用樣本:
toBase64("FnF")輸出樣本:
"Rm5G"jsonToString
介紹:用於將JSON對象或映射(map)轉換為字串。
參數:
map[string]any傳回值:
string使用樣本:
toJSON({"name": "Tom", "age": 10})輸出樣本:
'{"name": "Tom", "age": 10}'uuid
介紹:用於產生一個uuid。
參數:
傳回值:
string使用樣本:
uuid()輸出樣本:
159fd8c1-2ec3-4d7b-b9fd-60b9d8841000