我不得不承认我对函数式编程了解不多。我从这里到那里读过,所以我知道在函数式编程中,对于相同的输入,一个函数返回相同的输出,无论该函数被调用多少次。它完全类似于一个数学函数,对于函数表达式中包含的相同输入参数值,计算结果为相同的输出。 例如,考虑以下内容: f(x,y) = x*x + y; // It is a mathematical function 不管你用了多少次f(10,4),它的值将始终为104..。因此,无论你写了什么 f(10,4),您可以将其替换为104,而不改变整个表达式的值。此属性称为表达式的引用透明度。 正如维基百科所说(link)、 相反,在函数代码中,函数的输出值
我是编程新手。我有以下代码:
float f = 18.45f;
这可以很好地工作。如果我将其更改为:
float f = 18.45;
java说这是错误的:
error: possible loss of precision
但就double而言,它是可选的。但在long中,我同样面临着同样的问题。
为什么java强制我这样做,而double却不是这样?