主题
第 9 章 我们栈里的其他面孔 · Python、Aiken、bash
这一章的标准降一档,只到"认识"为止。见到能认出,大意能读懂,危险能分级,不求会改。
Python(.py),ForgeCard 树莓派上跑的就是它。最大特征,缩进就是语法。别的语言用花括号表示哪些行属于这个块,Python 直接用缩进表示,所以它没有花括号,也基本不写分号,长相干净得像伪代码。看一段读卡循环的骨架。
python
while True:
uid = reader.read_card()
if uid:
print(f"读到卡片: {uid}")
verify(uid)读法,永远循环(树莓派永远醒着,第一册第 5 章那台客厅小服务器的日常),读卡,读到了就打印并验证。print 就是第一册第 14 章那盏最土最有效的探照灯,Python 版。
Aiken(.ak),我们链上合约的语言。两件事记牢就够。其一,它的类型检查比 TS 更严苛。合约部署后不可修改(第一册第 12 章的学费),错误必须在部署前死绝,语言本身就长成了一台超级安检机。其二,文件里那个叫 validator 的函数是合约的门神,每笔交易来敲门,它说放行或拒绝。本册对 .ak 只有一个要求,见到它,红线雷达自动拉满。它属于"改动前必须人来确认"的世界,具体规矩在我们的工程护栏里,不在这本书里。
bash 脚本(.sh),把第二册第 4 章的命令串成一个文件,一行一条,自动化的最小形态。第一行 #!/bin/bash 叫 shebang,意思是"本剧本由 bash 来演"。点开项目里的 deploy.sh、setup.sh 这类文件,你会发现全是认识的命令在排队。
收个总账。语言们长相各异,骨架却相通,变量、函数、判断、循环,四大件人人都有。在任何陌生语言里先找这四件,第一层理解立刻建立。学第二门语言比第一门快十倍,原因就在这里,而你现在已经在学第七门了。
认脸卡
缩进当语法、无分号 = Python;validator 加满屏类型 = Aiken,红线拉满;#!/bin/bash 开头、全是命令 = bash 脚本。
关键领悟
对这三门的要求是三十秒答出三问。什么语言?大概在干什么?危险几颗星?.py 平常心,.sh 看内容,.ak 永远满星。
试一试
打开 ForgeCard 仓库里任意一个 .py,只指认四大件,变量、函数、判断、循环各一处。再打开一个 .ak,什么都不改,只把 validator 的名字找出来,然后轻轻关上文件。