一点背景:我正在通过 O'Reilly 的“Learning Python”一书学习 Python,我在 Java 方面有一些经验。
无论如何,在阅读第 5 章时(实际上我还处于中间阶段),我遇到了一个关于 Python 处理混合数值表达式结果的方式的问题。在书中,他们使用了一个混合整数和浮点数 (40 + 3.14) 的示例,并继续解释这个表达式的结果将是一个浮点数,因为 Python 将操作数转换为最复杂的操作数。
我的问题是:程序员不必记住哪个数字操作数是最高的并记住结果将被“提升”到该格式,为结果类型创建一个特殊的数字文字不是更简单吗?
我的逻辑是这样的:如果你的表达式中有小数位,你知道它会是一个浮点数,如果你有类似 3+4j 的东西,你知道它会是一个复数。为什么你必须记住数字文字的层次结构才能知道你的结果将被视为什么?在我看来,将结果分配给单个不知情的文字似乎是一个更简单的过程,以知道无论表达式是否具有混合数字,它将被视为特定的数据类型。
后续问题:目前是否有一种语言正在执行这种事情?
同样,我对 Python 的了解有限,所以这可能是一个愚蠢的问题,但我想知道为什么程序员必须让自己经历这个过程。我可以想象没有某种系统已经到位的唯一原因是,结果的特定数字类型可能不像其他语言(Java)那样重要。