Naked variable_裸变量
在 SugarCube 的世界里,除了使用标准的打印宏(如 <<print>>、<<=>> 或简写 <<->>)来输出 TwineScript 变量外,我们还有一种更优雅、更高效的选择——裸变量标记(Naked Variables)。
它允许你直接在章节文本中书写变量,系统会自动将其插值为对应的字符串表示形式,让你的文案创作流程更加丝滑。
语法规范与支持类型
裸变量标记涵盖了大部分常见的变量访问场景:
| 类型 | 语法结构 | 典型示例 |
|---|---|---|
| 基础变量 | $变量名 | $name |
| 对象属性(点记法) | $变量名.属性 | $player.hp |
| 索引访问(括号法) | $变量名[索引] | $list[0] 或 $map["key"] |
建议:裸变量仅适用于简单的值输出。如果你需要执行复杂的逻辑运算、方法调用或表达式计算,请务必回归使用
<<print>>宏以确保解析准确。
运行机制示例
让我们来看看裸变量在实际渲染中的表现:
sugarcube
/* 传统的打印宏方式 */
你的名字是:<<print $name>>
/* 简洁的裸变量方式 */
你的名字是:$name
/* 渲染结果(假设 $name 值为 "Apo") */
你的名字是:Apo转义处理:防止非预期插值
在编写教程或调试信息时,如果你希望原始输出变量名(例如显示 $name 本身而不是它的值),你需要对标记进行转义。
以下是三种官方推荐的转义方案:
- 三连双引号:使用
"""$name"""包裹。 - Nowiki 标签:使用
<nowiki>$name</nowiki>容器。 - 双美元符号:使用
$$name进行前缀转义。
这三种方法在最终渲染时,都会将其视为纯文本
$name处理。
进阶展示:内联代码块
如果你希望在展示变量原型的同时,为其赋予代码样式的视觉效果,可以使用 {{{ 三重花括号 }}}。这会将内容包裹在 HTML 的 <code> 标签内,非常适合技术文档。
sugarcube
/* 使用三重花括号转义 */
请查看变量 {{{$name}}} 的当前值。
/* 渲染结果 */
请查看变量 <code>$name</code> 的当前值。