小时候我们都玩过猜谜游戏,其中有一个广为人知的就是让你猜一猜:“1+1”等于多少,按照数学层面来看,这道战斗力连5都没有的题目的答案当然应该是2,但报出运算结果的同时,出题者往往会一脸胜利的表示,不对,等于“王”。从书写层面看,两横加上一个加号,确实可以组成一个“王”字,这是一种笔画上的拼接。当然当你不识好歹的准备回答等于“王”的时候,狡猾的出题者可能会给出第三个答案,“11”。一个“1”后面又加了个“1”,可不就是“11”么,这个答案将“1”视为了1个文字,是一种文字上的拼接。
谜语之所以使用1来作为谜面,显然是因为1具备两种属性,它既是一个数字,可以用于运算,同时也可以是一个文字,跟其他的文字组词成句。1天,1个月,1年,当然,也包括11。有意思的是,在编程语言中(包括但不限于Scratch),我们也会经常用到类似的拼接文字的方法,有句话说的好,你看过的每一本书都有用。现在看来,不光光是书,你猜过的谜语,也是能派上用处的。
谜语中是为了让人混淆概念,所以统一使用了加号,但在Scratch中,数学运算和文字的拼接有着各自的符号,数学运算符号这里就不多说了,有兴趣的可以翻一下一二年级的数学教材…至于文字拼接,我们会需要用到连接积木。试试同样是两个1,使用连接积木和使用加法运算,小猫分别会说些什么吧!
我们应该都见过盖房子,在数字运算中,数字就像是水泥桶里的水泥,运算结果把参与运算的两个数字混成了一团,你无法单单从一个结果9中看出来它参与运算的两个加数分别是啥。文字的拼接就好像用砖头砌墙,虽然同样是连在一起,但砖头与砖头之间还是泾渭分明的。也难怪勤劳勇敢的程序员们,喜欢把自己从事的工作形容为“搬砖”,这不单单是一种调侃,这样一比方,二者之间,好像也有相类似之处。