---
title: 工作流变量
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Video } from '@/components/ui/video'

Sim 中的变量充当数据的全局存储，可以被工作流中的任何模块访问和修改，从而允许您通过全局变量在整个工作流中存储和共享数据。它们提供了一种强大的方式来在工作流的不同部分之间共享信息、维护状态并创建更动态的应用程序。

<div className="mx-auto w-full overflow-hidden rounded-lg">
  <Video src="variables.mp4" />
</div>

<Callout type="info">
  变量允许您在整个工作流中存储和共享数据，使您能够轻松维护状态并创建复杂的互联系统。
</Callout>

## 概述

变量功能作为工作流的中央数据存储，能够：

<Steps>
  <Step>
    <strong>存储全局数据</strong>：创建在工作流执行期间持久存在的变量
  </Step>
  <Step>
    <strong>在模块之间共享信息</strong>：从工作流中的任何模块访问相同的数据
  </Step>
  <Step>
    <strong>维护工作流状态</strong>：在工作流运行时跟踪重要的值
  </Step>
  <Step>
    <strong>创建动态工作流</strong>：基于存储的值构建更灵活的系统
  </Step>
</Steps>

## 创建变量

您可以通过侧边栏中的变量面板创建和管理变量。每个变量具有：

- **名称**：用于引用变量的唯一标识符
- **值**：存储在变量中的数据（支持多种数据类型）
- **描述**（可选）：解释变量用途的注释

## 访问变量

可以通过工作流中的任何模块使用变量下拉菜单访问变量。只需：

1. 在块内的任意文本字段中输入 `<`
2. 浏览下拉菜单以选择可用变量
3. 选择您想要使用的变量

<div className="mx-auto w-full overflow-hidden rounded-lg">
  <Video src="variables-dropdown.mp4" />
</div>

<Callout>
  您还可以将连接标签拖到字段中以打开变量下拉菜单并访问可用变量。
</Callout>

## 变量类型

Sim 中的变量可以存储多种类型的数据：

<Tabs items={['文本', '数字', '布尔值', '对象', '数组']}>
  <Tab>

    ```
    "Hello, World!"
    ```

    <p className="mt-2">文本变量存储字符字符串。它们适用于存储消息、名称和其他文本数据。</p>
  </Tab>
  <Tab>

    ```
    42
    ```

    <p className="mt-2">数字变量存储可用于计算或比较的数值。</p>
  </Tab>
  <Tab>

    ```
    true
    ```

    <p className="mt-2">布尔变量存储 true/false 值，非常适合标志和条件检查。</p>
  </Tab>
  <Tab>

    ```json
    {
      "name": "John",
      "age": 30,
      "city": "New York"
    }
    ```

    <p className="mt-2">对象变量存储具有属性和值的结构化数据。</p>
  </Tab>
  <Tab>

    ```json
    [1, 2, 3, "four", "five"]
    ```

    <p className="mt-2">数组变量存储有序的项目集合。</p>
  </Tab>
</Tabs>

## 在块中使用变量

当您从块中访问变量时，您可以：

- **读取其值**：在块的逻辑中使用变量的当前值
- **修改它**：根据块的处理更新变量的值
- **在表达式中使用它**：将变量包含在表达式和计算中

## 变量作用域

Sim 中的变量具有全局作用域，这意味着：

- 它们可以从工作流中的任何块访问
- 对变量的更改在工作流执行期间保持
- 除非明确重置，否则变量在运行之间保持其值

## 最佳实践

- **使用描述性名称**：选择能够清楚表明变量代表什么的名称。例如，使用 `userPreferences` 而不是 `up`。
- **记录您的变量**：为变量添加描述，以帮助其他团队成员了解其用途和用法。
- **考虑变量作用域**：记住变量是全局的，可以被任何块修改。在设计工作流时考虑到这一点，以防止意外行为。
- **尽早初始化变量**：在工作流开始时设置并初始化变量，以确保它们在需要时可用。
- **处理缺失变量**：始终考虑变量可能尚不存在或可能具有意外值的情况。在块中添加适当的验证。
- **限制变量数量**：保持变量数量在可管理范围内。过多的变量会使您的工作流难以理解和维护。
