代码之家  ›  专栏  ›  技术社区  ›  Sir Rippov the Maple

为什么数字后缀是必需的?

  •  3
  • Sir Rippov the Maple  · 技术社区  · 16 年前

    C#语言(以及我确信的其他语言)要求在数字文字的末尾添加后缀。这些后缀表示文字的类型。例如, 5m 5f

    我的问题是:这些后缀真的有必要吗,还是有可能从上下文中推断出文字的类型?

    decimal d = 5.0 5.0

    2 回复  |  直到 16 年前
        1
  •  9
  •   Eric Lippert    16 年前

    一般来说,我们试图设计语言,使有关类型的信息“流出”,而不是“流入”。也就是说,表达式的类型是通过首先分析它的每个子表达式来确定的,然后我们看看它是否与其上下文一致——我们通常不会走另一条路,从上下文推理到子表达式。当类型信息可以双向流动时,您可能会遇到一些非常难以分析的情况,就像lambda表达式一样。

        2
  •  8
  •   paxdiablo    16 年前

    对于以下简单情况来说,这很好:

    float f = 7;
    

    float f = (double)(int)(1 / 3 + 6e22 / (double)7);
    

    是的,我知道这是一个人为的例子,但我们 尤其