Verse Wiki — 写给蓝图作者的 Verse 手册
拓展 · EXTRA

Verse 长得像谁:与 Python / C# / 蓝图的语感对照

「代码恐惧」多半不是怕逻辑,是怕那一屏陌生符号。治它最快的办法是发现:这些符号并不新——Verse 的绝大部分长相,你要么在别处见过,要么在蓝图里已经天天用了。这一页把同一段逻辑用三种语言并排写一遍,把「像谁」和「只属于它」分清楚。

一、同一段逻辑,三种写法

逻辑简单到没法再简单:有个分数,如果它不小于 100,就打印一句「过关」。三段代码都省掉了各自的外壳(类、函数、import),只留最核心的三行,方便你只看形状。

Verse
Score:int = 120
if (Score >= 100):
    Print("过关")
Python
score = 120
if score >= 100:
    print("过关")
C#
int score = 120;
if (score >= 100)
{
    Console.WriteLine("过关");
}

而在蓝图里,这就是:变量面板新建一个 Integer 叫 Score、默认 120;拖一个 >= 节点比较 Score 和 100;结果接进 Branch 的 Condition 引脚;True 引脚接一个 Print String,文字填「过关」。四种表达,一样的意思。

先看最直观的一点:三段代码的行数和结构完全一样——一行建数据、一行做判断、一行干活。差别只在标点。这就是本页想让你先接受的事:所谓「学一门新语言」,大部分时候是在学标点习惯,不是在学新的思考方式。而思考方式那部分,你搭蓝图的时候早就练熟了。

二、像 Python 的地方

把 Verse 那三行和 Python 那三行叠在一起看,几乎能重合:

所以如果你身边有人「会一点 Python」,让他念一段 Verse,他大概率能念个八九不离十。这不是巧合:缩进划块 + 无分号是过去二十年新语言的主流审美,Verse 只是站在了同一条队伍里。

三、像 C# 的地方

但 Verse 并不是 Python 的孪生兄弟。它骨子里比 Python 严格得多,这部分更像 C#(以及你熟悉的蓝图):

一句话总结前两节:Verse 的排版像 Python,脾气像 C#。它拿了缩进式语法的清爽,又保留了静态类型语言的较真。

这件事 蓝图 Verse Python C#
怎么划分代码块 连线 + 节点位置 缩进 缩进 大括号 { }
行尾符号 分号 ;
类型写不写 变量面板里选 写出来,或让它推断 基本不写 要写(或 var 推断)
「新建一个名字」 变量面板点 + := = int x = …
「改一个已有的值」 Set 节点 set X = … x = … x = …;
「问两个东西相不相等」 == 节点 = == ==
贴在函数上的标签 Details 面板的勾选框 <> 说明符 @ 装饰器 [ ] 特性

四、只属于 Verse 的四件事

上面那张表里有四格,是 Verse 和其它三者都不一样的。它们也正是本站后面反复要讲的四件事——现在只要认得脸,不用理解到底。

:= 新建,set 改值,分工明确。Python 和 C# 都用同一个 = 干两件事:第一次写是新建,后面写是修改。Verse 把它们拆开了::= 只能用来新建,改已有的值必须写 set。这其实和蓝图更接近——蓝图里「新建一个变量」和「拉一个 Set 节点」本来就是两个完全不同的动作,你从来不会搞混。

② 单个 = 是比较,而且没有 ==这是最容易吓到人的一条,但换个角度想:既然赋值有了专用的 set,= 就空出来了,拿去做「问相不相等」正好。数学课上 x = 5 本来就是一个陈述句/问句,不是命令句。所以 Verse 里根本不存在 == 这个符号。

③ 判断可以「走不通」,不只是 true/false。这是 Verse 最独特的地方,也最难一句话讲清。蓝图的 Branch 只有两个出口:True 和 False。Verse 的 if 里放的不是一个布尔值,而是一个可能走不通的表达式——它可能算出结果,也可能中途「没成功」。没成功的时候,这一小块里已经做过的事会被整体撤销,就像没发生过。这套机制叫「失败上下文」(failure context),它把「查表查不到」「数组越界」「类型对不上」这些在别的语言里要么崩溃、要么返回 null 的情况,统统变成了一个安静的分支。第 12 课整课都在讲它。

<> 里的说明符。Python 有装饰器、C# 有特性、蓝图有 Details 面板上的勾选框——功能类似,但 Verse 的说明符管的事更硬核:它们参与编译检查。<suspends> 不只是个标记,它决定了这个函数里到底允不允许出现 Sleep 这类会占用时间的操作。这跟蓝图里「Delay 不能放进纯函数」是同一条规矩,只不过 Verse 把它写成了名字旁边一个你必须自己写上去的词。

五、所以,你其实已经会一门语言了

回头看那张五列表,你会发现「蓝图」那一列从头到尾都填得满满的——每一件事你都已经在做,只是用的是鼠标而不是键盘。变量有类型、赋值要显式、函数有勾选项、条件要判断:这些概念你早就内化了,你只是没用过它们的文字形态。

所以学 Verse 不是「从零学编程」,是给已经会的东西换一套记号。真正全新的只有第四节那四条,其中三条(:= / = / 说明符)是标点习惯,一学就会;唯一需要真的花时间的是「失败上下文」,而它恰好是 Verse 送给你的礼物,不是门槛。

六、小测验

下面哪一条是 Verse 独有的,Python 和 C# 都不是这样?

来源

Verse 侧的写法以 Epic 官方文档为准:Verse Language Quick Reference(官方文档)↗