设置变量 (Set Variable)
- 分类: 变量
- 内部 ID:
set_variable
节点功能
在当前蓝图的上下文中存储一个指定名称的变量值。

入参
| 端口名称 | 内部 ID | 类型 | 说明 |
|---|---|---|---|
| 执行 | exec | 执行 (EXEC) | 触发该节点的执行流。 |
| 变量名 | name | 字符串 (STRING) | 要设置的变量名称。 |
| 值 | value | 任意 (ANY) | 要存储的数据内容。 |
出参
| 端口名称 | 内部 ID | 类型 | 说明 |
|---|---|---|---|
| 执行 | exec | 执行 (EXEC) | 节点执行完毕后触发的后续执行流。 |
| 值 | value | 任意 (ANY) | 当前设置的值,方便透传给后续节点使用。 |
逻辑规则
- 变量存储:
- 节点会将输入的值存入
NodeContext的variables映射中。 - 对应代码实现: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); }
- 节点会将输入的值存入
- 名称处理:变量名在存储前会自动去除首尾空格(
.trim())。 - 空值处理:如果输入的
value为空,会存入空字符串""。如果name为空,则不会执行存储操作。 - 透传机制:该节点同时实现了
execute和getValue。execute:负责将变量存入上下文并触发下游执行流。getValue:允许其他数据节点直接连接该节点的value输出引脚,获取当前设置的值。
- 执行流触发:无论变量设置是否成功(只要不抛出未捕获异常),都会触发
exec输出引脚。