我最近意识到在 DW 2.0 中使用类泛型表示法来表示多态类型。
下面的例子
%dw 2.0
output application/dw
fun id1(a) = a
fun id2(a: Any) = a
fun id3<T>(a: T) = a
var id4 = <T>(a: T) -> a
---
{
"d1": id1,
"d2": id2,
"d3": id3,
"d4": id4,
r1: id1(10),
r2: id2(10),
r3: id3(10),
r4: id4(10)
}
Run Code Online (Sandbox Code Playgroud)
说明这些函数的签名和语义是相同的。
这就引出了一个问题,如果有的话,这些定义之间有什么区别?你会推荐哪一个?
最后,确认我的假设,即 DW 2.0 借用了在 OO 语言中发现的这种类似泛型的语法来支持显式多态类型。
注意:我确实使用application/dw过以便在从 Anypoint Studio 运行预览时查看函数的信号
蒂亚!
我必须根据条件编写一些转换和计算,例如汇总数组中的现金/dd/支票收据和现金/dd/支票的总和。我已经定义了我的输入数组,并基于此我期待我定义的输出。帮我完成 dataweave。\
代码:
%dw 2.0
output application/json
---
{
receipt: payload map ( payload01 , indexOfPayload01 ) -> {
receiptId: payload01.receiptId,
amountCollected: payload01.amountCollected,
paymentMode: payload01.paymentMode,
},
summary: {
TotalamountCollected: payload.*amountCollected reduce ((val, acc=0) -> acc + val)
}
}
Run Code Online (Sandbox Code Playgroud)
输入:
[{
"receiptId": 11000134453,
"amountCollected": 11,
"paymentMode": "Cash"
}, {
"receiptId": 1105444723,
"amountCollected": 12,
"paymentMode": "Cheque"
}, {
"receiptId": 1143434763,
"amountCollected": 13,
"paymentMode": "DD"
},{
"receiptId": 11000134457,
"amountCollected": 14,
"paymentMode": "Cash"
}, {
"receiptId": 1105444728,
"amountCollected": 15,
"paymentMode": "Cheque"
}, { …Run Code Online (Sandbox Code Playgroud)