为什么需要数字后缀?

2024-05-21

C# 语言(我确信还有其他语言)需要在数字文字末尾添加后缀。这些后缀指示文字的类型。例如,5m是一个小数,5f是一个浮点数。

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

例如,代码decimal d = 5.0应该推断5.0不是双精度数,而是小数。这种语法会带来问题吗?


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

现在,针对你提到的具体情况,我们could编写了一条规则,规定“可以在不损失精度或大小的情况下转换为十进制的浮点文字不需要 m 后缀”,就像适合短整型的文字自动转换一样。但是添加“m”很容易,当某些文字自动转换而其他文字没有自动转换时,这会令人困惑,并且要求类型一致使代码更容易理解并且更自记录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么需要数字后缀? 的相关文章

随机推荐