飒路紫 发表于 2018-12-24 16:47:47

为什么相等的两个变量,判定=,返回的是nil?

本帖最后由 Gu_xl 于 2018-12-25 11:01 编辑

哪位大神帮解释一下呀,这个公式(= (cadr ent2_codi) (cadr ent_data_1))明明是T,为什么我监视窗口单独监视(cadr ent2_codi)和(cadr ent_data_1)的值是相等的,但是这个公式(= (cadr ent2_codi) (cadr ent_data_1))返回的是nil呢???电脑算错了???好困惑!!!

lht 发表于 2018-12-24 18:00:10

本帖最后由 lht 于 2018-12-24 18:05 编辑

用itoa或rtos将数值转换成字符串再比较就行了

yxp 发表于 2018-12-24 19:07:05

本帖最后由 yxp 于 2018-12-24 19:18 编辑

用 equal 函数可以判断。
例如:
eq 和 = 必须要相同的约束条件:
(setq a '(1 2 3) b '( 1 2 3)) ,a、b字面值虽然相同,可能内存地址不同
(eq a b) 返回 nil
(equal a b) 返回 t
但是如果将 b 直接 复制给 a ,表示 a、b字面值相同,内存地址也相同
(setq a '(1 2 3) b a)
(eq a b) 返回 t
(equal a b) 返回 t



飒路紫 发表于 2018-12-24 21:07:42

yxp 发表于 2018-12-24 19:07
用 equal 函数可以判断。
例如:
eq 和 = 必须要相同的约束条件:


多谢多谢,已经解决了:victory:

飒路紫 发表于 2018-12-24 21:08:31

lht 发表于 2018-12-24 18:00
用itoa或rtos将数值转换成字符串再比较就行了

多谢:lol,已经解决了,哈哈

pengfei2010 发表于 2018-12-27 08:08:48

学习了,评论区更精彩

talentzf 发表于 2019-1-2 13:56:46

学习了,函数之间的细微差别
页: [1]
查看完整版本: 为什么相等的两个变量,判定=,返回的是nil?