Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure:=vs==_Clojure_Equality - Fatal编程技术网

Clojure:=vs==

Clojure:=vs==,clojure,equality,Clojure,Equality,我正在努力理解为什么 (= 1 1.0) 计算结果为false (== 1 1.0) 计算结果为true。根据调查显示,==似乎只对数字起作用,但除此之外,似乎差别不大。那么,我遗漏了什么呢?==检查数学等价性=使用数字检查等效性的方式与大小无关(如适用),但对表示形式要求严格: user> (= (float 1.0) (double 1.0)) true user> (= (int 1) (byte 1)) true user> (= (int 1) (double 1

我正在努力理解为什么

(= 1 1.0)
计算结果为
false

(== 1 1.0)

计算结果为
true
。根据调查显示,
==
似乎只对数字起作用,但除此之外,似乎差别不大。那么,我遗漏了什么呢?

==
检查数学等价性<代码>=使用数字检查等效性的方式与大小无关(如适用),但对表示形式要求严格:

user> (= (float 1.0) (double 1.0))
true
user> (= (int 1) (byte 1))
true
user> (= (int 1) (double 1))
false
user> (= 0.5 (/ 1 2))
false
user> (== 0.5 (/ 1 2))
true
假设,原因是浮点表示可能会失去精度,不应将其视为等同于整数或精确表示。

REPL是您最好的朋友。(doc=)(doc=)这在lighttable下返回“nil”,你知道为什么吗?