乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 18|回复: 13

[编程交流] Set和Setq

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 06:09:15 | 显示全部楼层 |阅读模式
你好
 
不知道有什么不同?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:14:41 | 显示全部楼层
我一直认为这是议员的一个很好的解释。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 06:21:44 | 显示全部楼层
 
其实我更困惑了
 
为什么这一个会起作用:
 
; 错误:错误的参数类型:symbolp nil
  1. _$ (mapcar 'set '(x y z) '(1 2 3))
  2. (1 2 3)

 
但这叫
 
  1. _$ (set d 1)
  2. ; error: bad argument type: symbolp nil
  3. _$
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:24:26 | 显示全部楼层
 
链接帖子中的解释说明:
 
第一个示例相当于:
然而,在第二个示例中,符号d由集合函数求值(因为它没有被引用)。
因此,第二个示例的计算结果为:
如果符号d没有值,则为:
如您所述返回错误。
 
我链接的帖子中给出了一个类似的例子来解释同样的事情:
 
 
我建议你重新阅读这篇文章。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 06:32:15 | 显示全部楼层
所以set()函数无效
 
通过写作
  1. (mapcar 'set '(x y z) '(1 2 3))

 
我用引号,所以它和setq一样
 
通过写作
  1. 6

 
我总是会出错,因为d可以为null或任何其他不可能赋值的值
 
你能告诉我set()函数可以在哪里使用吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:33:47 | 显示全部楼层
 
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 06:40:15 | 显示全部楼层
 
 
有什么不同?
 
  1. 7
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:45:08 | 显示全部楼层
 
在这种情况下没有区别-因为AutoLISP不关心空格,所以发布的表达式是相同的。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 06:46:41 | 显示全部楼层
在帮助中,他们在set()的页面中给出了setq()的示例代码?
你能举个例子说明集合(0)在哪里很方便吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:53:18 | 显示全部楼层
 
一个简单的例子:排列变量
如果使用setq,相同的操作将需要松弛变量(c):
  1. 9
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 18:37 , Processed in 0.599305 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表