Skip to content

设置变量 (Set Variable)

  • 分类: 变量
  • 内部 ID: set_variable

节点功能

在当前蓝图的上下文中存储一个指定名称的变量值。

设置变量节点

入参

端口名称内部 ID类型说明
执行exec执行 (EXEC)触发该节点的执行流。
变量名name字符串 (STRING)要设置的变量名称。
value任意 (ANY)要存储的数据内容。

出参

端口名称内部 ID类型说明
执行exec执行 (EXEC)节点执行完毕后触发的后续执行流。
value任意 (ANY)当前设置的值,方便透传给后续节点使用。

逻辑规则

  1. 变量存储
    • 节点会将输入的值存入 NodeContextvariables 映射中。
    • 对应代码实现:
      java
      String name = TypeConverter.toString(NodeLogicRegistry.evaluateInput(node, "name", ctx));
      Object value = NodeLogicRegistry.evaluateInput(node, "value", ctx);
      
      if (name != null && !name.trim().isEmpty()) {
          ctx.variables.put(name.trim(), value);
      }
  2. 名称处理:变量名在存储前会自动去除首尾空格(.trim())。
  3. 空值处理:如果输入的 value 为空,会存入空字符串 ""。如果 name 为空,则不会执行存储操作。
  4. 透传机制:该节点同时实现了 executegetValue
    • execute:负责将变量存入上下文并触发下游执行流。
    • getValue:允许其他数据节点直接连接该节点的 value 输出引脚,获取当前设置的值。
  5. 执行流触发:无论变量设置是否成功(只要不抛出未捕获异常),都会触发 exec 输出引脚。

基于 VitePress 构建