Title Text:The cycle seems to be ‘we need these symbols to clarify what types of things we’re referring to!’ followed by ‘wait, it turns out words already do that.’<
Origin:https://xkcd.com/1306/
https://www.explainxkcd.com/wiki/index.php/1306:_Sigil_Cycle
在计算机编程中,变量是一种临时存储信息的方式,以便稍后在程序中使用。存在不同类型的变量,称为数据类型,例如整数,字符串,字符和布尔值,它们都包含不同类型的信息。整数包含整数,字符串包含文本,等等。变量传统上具有标识其目的的名称,并且程序员通常应该能够从该变量名称推断出它是什么类型的变量。例如,如果要将客户的名称存储在目录服务中,则可以将文本存储在名为“NameOfCustomer”的字符串变量中。因为很明显名称是由文本组成的,所以这个变量是一个字符串变量是合乎逻辑的 – 如果你没有关于它的任何其他信息。
计算机编程中的符号是出现在变量名称之前的符号。它是一种替代方法,可以告诉正在读取程序代码的人变量的数据类型。然后,要知道NameOfCustomer是一个字符串,而不是依赖逻辑,您可以在变量名之前使用一个“$”,如$ NameOfCustomer,它将指定该变量可以保存文本。 Sigils还可以指定变量的范围,该变量指的是变量可以在程序中使用的位置,以及程序的哪些部分可以访问该变量。 Sigils在某些方面很有用,因为您不必参考以前的程序代码或查找声明(创建)变量的位置以了解它是什么数据类型。它们还提供了一些语言类型,这些语言没有明确声明变量的类型。
大多数编程语言都有不同的存储变量的方法,尽管某些语言可能在不同的名称下使用相同的变量类型。以下是漫画中引用的编程语言以及它们如何使用变量。
QBASIC
string类型的变量以$符号结尾。使用其他符号(%表示整数,!表示单精度,#表示双精度,有些版本是BASIC,&amp;表示长整数),但通常的QBASIC程序只使用$符号,而不是任何符号其他,作为默认类型,如果没有使用符号是双精度,这对于大多数数字使用是可以的。
C ++
发音为“see plus plus”。变量只是普通字母的单词。它是包含符号的语言本身的名称。
庆典
这通常不被认为是一个功能齐全的编程语言,而是一个Unix shell。但是,shell命令语法足够丰富,能够编写简单(有时非常复杂)的程序,称为shell脚本。在这种语言中,所有变量解引用都以符号$开头。
Perl的
在Perl中,简单类型的变量,即标量,以及对数组和散列中的项的引用,以$开头。数组以@开头。哈希以%开头。
蟒蛇
变量只是普通字母的单词。
谷歌
最初,谷歌只是一个搜索引擎。但是,它现在包含许多内容,特别是名为Google+的社交网络(发音为“google plus”)。 Google+帐户以+前缀引用。
推特
Twitter帐户ID由前导符号@标识。当使用@在推文中“提及”帐户时,它会触发智能行为。例如,帐户所有者可以配置Twitter以转发提及它们的推文。这个功能在Twitter的早期并不存在。
主题标签
2007年,Twitter用户开始了一个约定,即#符号(其中许多名称包含“哈希”)可以添加到单词之前,以将其标记为关键字。然后可以在Twitter上搜索这些单词。 2009年,Twitter认识到了主题标签的存在,并开始对它们进行超链接。其他一些微博服务也随之而来。 Google+最终添加了标签支持,Facebook也是如此。
正如漫画中所指出的,使用符号来表示变量的类型因编程语言而异,从Perl等语言的严格执行到C ++等语言的完全缺失(但请参阅匈牙利表示法)。漫画中指出,使用符号似乎是循环的,特别是如果你将主题标记作为模式的扩展。
标题文本描述了负责循环的两个竞争影响:第一个冲动发现有用于阐明变量类型的符号,特别是当变量名称不是非常具有描述性时,而后者的脉冲注意到描述性变量名称对于这个目的,特别是在可扩展语言中,内置类型只构成类型系统的一小部分。