=、eq和equal是三个非常不同的东西,如果我可以添加一些注释来进一步解释一些非常重要的差异的话。。
正如M.Sasu所说,你可以用一个等于的模糊因子来检查数值。。知道并记住这是一件非常好的事情。
------------------------
=用于比较数值,但不能包括任何模糊因子。就像在十进制中,1/3不能精确地用小数表示(0.3333333),同样的情况也可以在二进制中发生,下面是一个例子
由于CAD检查16位数字,我们可以用最小的模糊因子检查等式
- (equal 6.0 (- 8.2 2.2) 0.000000000000001) => T
------------------------
如果两个参数的计算结果相同,Equal将返回T。例如,让我们把一些东西放在几个变量中。以下所有内容都将返回相同的内容。
因为它们都计算为(A B C),所以它们都是相等的。
------------------------
另一方面,只有当两个参数有界于同一事物时,Eq才会返回T。使用前面定义的变量。。
只有x和z被绑定到同一事物。(setq z x)。
偶数(eq’(A B C)'(A B C))返回零。
------------------------
有时,用一个代替另一个可能没有副作用,但不理解其中的区别,使用错误的方法就像掷硬币一样。您最终可能会出现意外的行为和难以调试的时间。
我不确定是否每个人都同意,但即使使用三个(=/eq/equal)中的任何一个将不存在的变量与零进行比较,也会返回T。。。
我认为应该使用后者(等于z nil)。
希望有帮助。干杯
杰夫! |