在C# (和Java)中,字符串只不过是一个字符数组,具有存储的长度和一些方法。类似地,(除了引用和值之外)对象只不过是添加了继承和接口的美化结构。
在某种程度上,这些添加感觉就像清晰的特性和自身的增强。在另一个层面上,他们感觉像是从“句法糖”的地位边缘升级。
为了进一步理解这一想法,请考虑(我可能有些细节错误,但重点仍然是):
transistor
elementary logic gate
compound gate
| |
ALU flip-flop
| | |
| register RAM
| |
CPU
microcode
assembly
C
C++
| |
MSIL JavaScript
C# jQuery很多时候,任何一个抽象层看起来都很像语法糖,但是多个层次的分离却让人感到彼此之间的隔阂很大。
,你怎么知道什么时候一些东西不再是语法糖,而开始成为真正的特性?
发布于 2009-09-07 18:06:21
当它暗示着一种不同的思维方式时,它被证明是一种特征,而不是句法糖。
当您说对象实际上是带有方法和继承的美化结构时,您是正确的。然而,这只是实现细节。对象允许的是以一种不同的方式思考。在考虑对象时,您可以更容易地与现实世界实体联系起来。同样的事情发生在更早的时候,我们从使用go- to到过程性编程。在引擎盖下,处理器仍然继续从OP到OP运行jmp,但是我们可以用另一种更黑的方式来思考。
尽管如此,在极端的情况下,你可以说所有的东西都是语法糖,但是当它允许你以不同的方式思考时,其中的一些糖是一种特性。
发布于 2009-09-07 17:54:48
句法糖是一种特征。
发布于 2009-09-07 17:52:58
所有的软件都是建立在其他抽象之上的巨大的抽象堆栈。字符串可能只不过是一个字符数组,但是有许多操作在字符串上感觉很自然,但在字符数组上却很尴尬。所有这些抽象的目标是相同的:删除不相关的细节,以便开发人员能够专注于问题的重要部分。
正如您所指出的,所有现代编程语言都可能被淘汰,我们可以重新使用汇编语言。但我们的生产力会直线下降。
我猜,当人们觉得语法糖没有什么好处的时候,就会称之为语法糖,而当他们觉得语法糖有很大的好处时,他们就会称之为语法糖。这使得区别非常模糊,而且相当主观。
https://stackoverflow.com/questions/1390365
复制相似问题