跳至主要内容

合并节点

概述

Coalesce节点的工作原理类似于SQL中的COALESCE函数——它从输入列表中返回第一个非空值。

在Rivet中,"null"包含界面上显示为"未运行"的值 - 这些节点由于控制流处理而被排除在运行之外。 Coalesce节点擅长处理一组节点(其中只有一个会被运行),并返回实际运行的第一个节点的输出。有关如何与Match Node配合使用的更多信息,请参阅示例部分。

Coalesce Node Screenshot

输入项

标题数据类型描述默认值备注
ConditionalbooleanIf connected, this can be used so that the coalesce node itself is only run conditionally.N/AOtherwise, 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节点来执行空值检查并为参数设置默认值。

  1. 创建一个If节点但不连接到输入,这样它就不会运行。
  2. 将If节点的输出连接到Coalesce节点。
  3. 将带有硬编码值的Text节点连接到Coalesce节点的第二个输入。
  4. 运行图形。请注意,Coalesce节点的输出将是Text节点的值,因为If节点未运行。

Coalesce Node Example 1 Screenshot

示例2:从Match节点获取单个值

  1. 创建一个Match Node,包含几个不同的案例,比如123
  2. 对于每种情况,使用If Node将每种情况转换为唯一值,例如ABC。您可以使用连接到If Nodes的value端口的Text Node来设置每种情况下传递的值。
  3. 将每个If节点的输出连接到Coalesce节点的其中一个输入上。
  4. 将输入连接到Match节点,这样只会运行其中一个案例。
  5. 运行图形。请注意,Coalesce节点的输出将是已运行的If节点的值。

上述是与Match节点配合使用的常见模式 - 您可以通过If节点为每个case获取唯一值,该值不依赖于传入Match节点本身的值。

Coalesce Node Example 2 Screenshot

错误处理

在正常操作中,coalesce节点不会出错。

常见问题

问:空字符串会被跳过吗?

A: 不,空字符串对于Coalesce节点不被视为可空值。如果您想跳过空字符串,可以使用If节点来检查空字符串,并在字符串为空时返回null。

另请参阅