- 积分
- 3521
- 明经币
- 个
- 注册时间
- 2010-9-4
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2019-9-26 16:05:45
|
显示全部楼层
lisp算是入门比较简单的语言了.
一方面lisp是纯面向过程的语言,关键字其实很少.当然Vlisp有很多二次开发的函数.
另一方面,lisp语法也比较简单,没有语句和函数的区别.
当然最重要的是vlisp作为解释脚本语言,而且和cad深度集成,可以很容易的看到一行代码的作用和返回值.而其他的编译语言,例如VB,C,C++和C#,都要编译以后运行后才能返回结果.
举个例子,对于初学者来说,很容易忽视一个问题,就是entsel函数获取的并不是图元名,而是(图元名 坐标点)这样的表,需要用car函数获取图元名,这时候如果直接将entsel获取的表当图元名使用,例如(setq ed (entget(setq en (entsel)))),会提示参数类型错误.这时候只需要在IDE的控制台输入!en,就能看到en存储的内容.而其他语言想处理只能加一句类似msgbox en,然后编译运行才能看到en存储的数据.
另外对于初学者,不太清楚组码的作用,用lisp就可以用简单的一句:
(setq ed (entget (setq en (car (entsel)))))
(princ ed )(textpage)
来插件该对象的组码.
还有一个很重要的就是lisp的变量没有类型,所以也就不存在溢出的情况,而且自由度很高.之前用vb写过一个倒计时,就是因为类型用错了,导致到9个小时的时候崩溃了.
但是lisp最为第二古老的高级语言,也有不少不如意的地方,比如没有for循环,不过能用while循环并设置临时变量的方式解决.还有几个跟表相关的函数容易弄混,例如list cons append或者apply和mapcar.
|
|