mulesoft 中块级变量的等价物是什么?
What is the equivalent of block level variable in mulesoft?
public static void method_one(){
for(Integer i=0;i<10; i++){
System.out.println('i');
}
//If we try to reference variable 'i', it will throw error.
}
我正在尝试在 mulesoft 4 中实现上述逻辑,如果我们在 mulesoft 中有等效的块级变量,我会感到困惑吗?
谁能推荐一下。
在 Mule 流中没有真正的可比性。在 mule 4 中,flows vars
是流变量(与 mule3 中的 flowVars
相同)。它们是针对每个事件的,可用于它们定义的流和它们引用的任何 flows/sub-flows。它们不跨越“传输障碍”,因此如果它们跨越 http、vm、jms 或您用来将流连接在一起的任何其他传输,它们将无法在另一个流中使用。
即使在 foreach
范围内,如果设置了变量,它在下一次迭代中仍然可用。但是,foreach 的每次迭代都会覆盖该变量。在 foreach 之后,只有最后评估的值在 foreach 范围之外可用:
<foreach collection="#[[0,1,2,3]]">
<set-variable variableName="i" value="#[(vars.i default 0) +1]" />
<!-- logs 1 then 2 then 3 then 4 -->
<logger level="INFO" message="Value of i: #[vars.i]" />
</foreach>
<!-- logs 4 -->
<logger level="INFO" message="Value of i: #[vars.i]" />
如果您出于某种原因需要删除它,您可以使用 <remove-variable variableName="myVar" />
。
如果您谈论的是 Dataweave,那么 using
运算符允许您在范围内使用变量:
%dw 2.0
output application/java
var myarray=[0,1,2,3]
---
{
bla: myarray map using (i=$$) {
index: i //works
},
outofscope: i //wont work
}
public static void method_one(){
for(Integer i=0;i<10; i++){
System.out.println('i');
}
//If we try to reference variable 'i', it will throw error.
}
我正在尝试在 mulesoft 4 中实现上述逻辑,如果我们在 mulesoft 中有等效的块级变量,我会感到困惑吗?
谁能推荐一下。
在 Mule 流中没有真正的可比性。在 mule 4 中,flows vars
是流变量(与 mule3 中的 flowVars
相同)。它们是针对每个事件的,可用于它们定义的流和它们引用的任何 flows/sub-flows。它们不跨越“传输障碍”,因此如果它们跨越 http、vm、jms 或您用来将流连接在一起的任何其他传输,它们将无法在另一个流中使用。
即使在 foreach
范围内,如果设置了变量,它在下一次迭代中仍然可用。但是,foreach 的每次迭代都会覆盖该变量。在 foreach 之后,只有最后评估的值在 foreach 范围之外可用:
<foreach collection="#[[0,1,2,3]]">
<set-variable variableName="i" value="#[(vars.i default 0) +1]" />
<!-- logs 1 then 2 then 3 then 4 -->
<logger level="INFO" message="Value of i: #[vars.i]" />
</foreach>
<!-- logs 4 -->
<logger level="INFO" message="Value of i: #[vars.i]" />
如果您出于某种原因需要删除它,您可以使用 <remove-variable variableName="myVar" />
。
如果您谈论的是 Dataweave,那么 using
运算符允许您在范围内使用变量:
%dw 2.0
output application/java
var myarray=[0,1,2,3]
---
{
bla: myarray map using (i=$$) {
index: i //works
},
outofscope: i //wont work
}