【KAIXIN】 发表于 2012-11-28 09:17:28

系统变量的设置,如何处理才最好?

本帖最后由 【KAIXIN】 于 2012-11-28 09:39 编辑

大家都知道:
方法1: (command "osmode""0""pickbox""2")
方法2:(setvar "osmode" 0)(setvar "pickbox" 2)

以上两种方法都可以设系统变量的值,
如果要设置很多个系统变量的值,那种最快呢?

可以用表函数 foreach 循环处理吗?

以下方法怎么不对?
(foreach lst '(("osmode" 0)
                  ("pickbox " 2)
                )
      (setvar (CAR lst)(CADR lst))
)





http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 【KAIXIN】的微博

wowan1314 发表于 2012-11-28 09:30:54

(setvar (CAR(CAR lst)) (CADR(CAR LST)))

【KAIXIN】 发表于 2012-11-28 09:38:25

wowan1314 发表于 2012-11-28 09:30 static/image/common/back.gif
(setvar (CAR(CAR lst)) (CADR(CAR LST)))

对啊,我忘了是表中表了,

可是设系统变量还是不行?

ll_j 发表于 2012-11-28 09:49:08

本帖最后由 ll_j 于 2012-11-28 09:50 编辑

(foreach lst '(("osmode" 0)
                  ("pickbox" 2)
                )
      (setvar (eval (CAR lst))(CADR lst))
)


我趋向于用setvar,不到不得已不使用command,这是因为使用了较多的command后,程序undo会变得复杂。

【KAIXIN】 发表于 2012-11-28 09:54:40

ll_j 发表于 2012-11-28 09:49 static/image/common/back.gif
我趋向于用setvar,不到不得已不使用command,这是因为使用了较多的command后,程序undo会变得复杂。

就大批量的设置系统变量值而已,比如:标注样式那样的,COMMAND 是不是要快些?

ll_j 发表于 2012-11-28 10:07:44

没有测试过速度,应该不会有大差别吧,就个人的理解,setvar是直接设置系统变量,而command是使用命令的方式来设置系统变量,深层次地,还是要经过变量设置这个过程,所以command应该慢一些。
另外,有些系统变量是没有对应command命令的,所以,我认为还是使用setvar好一些。

早期写程序的时候,因为系统较慢,且内存很少,经常会纠结于怎样增加运行速度,怎样减少内存占用,我认为,现在完全不必要再纠缠于这些,更应该考虑的是,怎样使得程序更规范、更系统、更易读懂。

背心 发表于 2012-11-30 16:02:49

6楼的看法,完全赞同
command 相当于在命令行输入 命令 执行
setvar 是直接针对内部参数赋值,应该是setvar 快一些。
我采用的 是setvar 进行初始参数设置。

tensir 发表于 2024-7-9 13:04:16

感谢作者的分享!

xxyyzzlg 发表于 2024-7-9 13:18:13

感谢分享经验之谈。初学,command,直观点
页: [1]
查看完整版本: 系统变量的设置,如何处理才最好?