合并节点
概述
Coalesce节点的工作原理类似于SQL中的COALESCE
函数——它从输入列表中返回第一个非空值。
在Rivet中,"null"包含界面上显示为"未运行"的值 - 这些节点由于控制流处理而被排除在运行之外。 Coalesce节点擅长处理一组节点(其中只有一个会被运行),并返回实际运行的第一个节点的输出。有关如何与Match Node配合使用的更多信息,请参阅示例部分。
- 输入
- 输出
- 编辑器设置
输入项
标题 | 数据类型 | 描述 | 默认值 | 备注 |
---|---|---|---|---|
Conditional | boolean | If connected, this can be used so that the coalesce node itself is only run conditionally. | N/A | Otherwise, the input is treated as any of the other inputs, so if you want to run the coalesce node conditionally, you must connect to this specific port with e.g. an If Node |
输入X | 任意 | 用于检查是否为null的输入之一。这些输入中第一个非null的值将被传递到输出端口。 | N/A | 根据连接数量动态变化的输入数量。 |
输出
标题 | 数据类型 | 描述 | 备注 |
---|---|---|---|
输出 | 任意 | 第一个非空输入的值。 | 如果没有输入为空,则不会运行输出。 |
编辑器设置
该节点没有可配置的编辑器设置。
示例1:默认值/空值检查
您可以使用Coalesce节点来执行空值检查并为参数设置默认值。
- 创建一个If节点但不连接到输入,这样它就不会运行。
- 将If节点的输出连接到Coalesce节点。
- 将带有硬编码值的Text节点连接到Coalesce节点的第二个输入。
- 运行图形。请注意,Coalesce节点的输出将是Text节点的值,因为If节点未运行。
示例2:从Match节点获取单个值
- 创建一个Match Node,包含几个不同的案例,比如
1
、2
和3
。 - 对于每种情况,使用If Node将每种情况转换为唯一值,例如
A
、B
和C
。您可以使用连接到If Nodes的value
端口的Text Node来设置每种情况下传递的值。 - 将每个If节点的输出连接到Coalesce节点的其中一个输入上。
- 将输入连接到Match节点,这样只会运行其中一个案例。
- 运行图形。请注意,Coalesce节点的输出将是已运行的If节点的值。
上述是与Match节点配合使用的常见模式 - 您可以通过If节点为每个case获取唯一值,该值不依赖于传入Match节点本身的值。
错误处理
在正常操作中,coalesce节点不会出错。
常见问题
问:空字符串会被跳过吗?
A: 不,空字符串对于Coalesce节点不被视为可空值。如果您想跳过空字符串,可以使用If节点来检查空字符串,并在字符串为空时返回null。