gpt4 book ai didi

C# 浮点文字 : Why compiler does not DEFAULTS to the left hand side variable type

转载 作者:太空狗 更新时间:2023-10-29 21:17:17 27 4
gpt4 key购买 nike

要声明 float ,我们需要为 float 加上“f”,为 double 加上“d”。

例子:

float num1 = 1.23f;   // float stored as float

float num2 = 1.23; // double stored as float. The code won't compile in C#.

据说如果省略浮点字面值,C# 默认为 double。

我的问题是,是什么阻止了像“C#”这样的现代语言对左侧变量类型的“默认”?毕竟,编译器可以看到整行代码。

这是编译器设计的历史原因吗?或者有什么我没有得到的。

最佳答案

我想说主要原因是可预测性和一致性。

假设您是编译器,您必须确定以下语句中文字 3.14 的类型:


float p = 3.14;

第一个很简单。显然,应该是一个 float 。


这个怎么样?

var x = 3.14 * 10.0f;

用户在 10.0 之后明确添加了一个 f。所以那应该是一个float,什么关于 3.14x 应该是 double 还是 float


还有这个:

bool b = 3.14 / 3.14f == 1;

第一个 3.14double 还是 floatb的值就靠它了!


作为用户,我宁愿明确地添加一个 f 并且确切地知道我得到了什么。

关于C# 浮点文字 : Why compiler does not DEFAULTS to the left hand side variable type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26697327/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com