跳至主要内容

If/Else节点

If/Else Node Screenshot

概述

If/Else节点是一个控制流节点,允许您根据条件在两个不同的值之间进行选择。它接收三个输入:一个条件、一个真值和一个假值。如果条件为真,则真值通过输出端口传递。如果条件不为真,则假值通过输出端口传递。

该节点可以"消耗"一个Not Ran值来从该点继续执行图。这意味着如果将Not Ran值传入If端口,则会改为传递False值。如果False值未被连接,则结果将再次变为Not Ran

If/Else节点特别适用于始终确保图形返回值,并且图形的输出始终运行,或者确保图形中的后续节点始终接收到值,即使中间节点未运行。

输入项

标题数据类型描述默认值备注
IfanyThe condition to evaluate. If truthy, the true value is passed through.(required)The input will be coerced into a boolean if it is not a boolean.
TrueanyThe value to pass through if the condition is truthy.(empty)The input will be coerced into the same data type as the False input if it is not the same type.
FalseanyThe value to pass through if the condition is not truthy or is not provided.(empty)The input will be coerced into the same data type as the True input if it is not the same type.

示例1:根据条件在两个值之间进行选择

  1. 创建一个Bool Node。将Bool Node的值设置为true
  2. 创建两个文本节点。将一个节点的文本设置为Hello,另一个设置为World
  3. 创建一个If/Else节点。将Bool节点连接到If/Else节点的If输入。将包含文本Hello的Text节点连接到If/Else节点的True输入。将包含文本World的Text节点连接到If/Else节点的False输入。
  4. 运行图表。If/Else节点的输出应为Hello
  5. 尝试将Bool节点的值更改为false。再次运行图表。现在If/Else节点的输出应该是World

If/Else Node Example 1

示例2:为缺失的输入提供默认值

  1. 创建一个If Node但不要将任何内容连接到其If输入。
  2. 创建两个文本节点。将一个节点的文本设置为Hello,另一个设置为World
  3. 将Hello Text节点连接到If节点的Value输入。
  4. 创建一个If/Else节点。将If节点连接到If/Else节点的IfTrue输入。将包含文本World的文本节点连接到If/Else节点的False输入。
  5. 运行图形。If/Else节点的输出应为World

If/Else Node Example 2

错误处理

在正常情况下,If/Else节点不会抛出错误。

常见问题

问:Rivet中什么被视为真值?

A: 在JavaScript中被视为真值的任何值,以及任何非空数组,在Rivet中都被视为真值。这包括:

  • true
  • 任何非零数字
  • 任何非空字符串
  • 任何非空数组
  • 任意对象
  • 任何函数

所有其他值都被视为假值,包括字符串值 "false"

问:如果If输入为Not Ran会发生什么?

A: 如果If输入是Not Ran,则会传递False值。如果False值未连接,则结果将再次为Not Ran

问:如果没有提供TrueFalse输入会发生什么?

A: 如果未提供TrueFalse输入,它们将默认为Not Ran

问:我能否使用If/Else节点在两种不同类型的值之间进行选择?

答:是的,您可以使用If/Else节点在两种不同类型的值之间进行选择。例如,您可以根据条件在字符串和数字之间进行选择。但请注意,If/Else节点的输出类型将与传入值的类型保持一致。

另请参阅