本帖最后由 黄翔 于 2024-6-26 21:39 编辑
(foreach name list [expr...])
;;;下面这代码n都不互相影响.
- (setq n "原始")
- (foreach n '("a" "b")
- (alert n)
- (foreach n '("1" "2")
- (alert n)
- )
- )
- (alert n)
;;经验分享foreach后面的name变量已经是局部变量了,不要放到函数定义的局部里面.会引起其他的bug
错误示例:重新举个例子.原来的不好.
- (defun 子函数( x / n)
- (eval x)
- (foreach n '("a" "b")
- (princ n)
- )
- )
- (foreach n '("a" "b")
- (子函数 '(alert n));;;这里会报错,因为子函数定义时n为nil了
- )
正确做法:
- (defun 子函数( x );定义时不要把n局部变量定义
- (eval x)
- (foreach n '("a" "b")
- (princ n)
- )
- )
- (foreach n '("a" "b")
- (子函数 '(alert n));正确执行.
- )
|