因此,在我的编程经验中,我遇到了两种静态类型语言的类型注释:我称它们为“之前”和“之后”。C 风格语言使用格式
int i = 5
虽然大多数非 c 系列语言使用这种格式
var c:int = 5
前一类的例子是 C、C++、Java;后一类的例子是 Scala、Haxe、Go。
这在某些人看来可能是肤浅的,但我的问题是:每种风格的优点是什么?为什么要使用一个而不是另一个?为什么 C 一开始就采用这种风格?
因此,在我的编程经验中,我遇到了两种静态类型语言的类型注释:我称它们为“之前”和“之后”。C 风格语言使用格式
int i = 5
虽然大多数非 c 系列语言使用这种格式
var c:int = 5
前一类的例子是 C、C++、Java;后一类的例子是 Scala、Haxe、Go。
这在某些人看来可能是肤浅的,但我的问题是:每种风格的优点是什么?为什么要使用一个而不是另一个?为什么 C 一开始就采用这种风格?
机器不在乎——只是设计某些语言的人觉得某些类型的语法比其他类型的语法更好或更容易阅读。现代编译器通常有几个处理阶段,并且在第一阶段之后通常会丢失几乎所有这些语法差异,该阶段解析文本并随后转换为编译器内部结构(AST - 抽象语法树)。
有一些历史优先级,例如“前缀”与“中缀”与“后缀”表示法(http://en.wikipedia.org/wiki/Polish_notation,http://en.wikipedia.org/wiki/Infix_notation,http ://en.wikipedia.org/wiki/Reverse_Polish_notation)在计算机工程历史的上下文中用于边缘情况 - 例如,“中缀”符号通常比后缀/RPN符号更难解析并且需要更多内存,因此它没有在资源真正稀缺的情况下使用(几 KiB 或更少的内存),但是由于硬件足够强大,这些原因中的大多数现在已经过时了。
今天,在设计一种语言时,这些语法细节的选择受到试图使该语言类似于一些其他流行语言或已经有程序员的语言组的影响,以避免制造一种很少有人使用的“来自火星的语言”。人们会使用。
tl; dr:取决于创建语言的人以及他认为更具可读性或“正确的事情”)。