LanloyLisp 发表于 2022-7-5 23:20:59

局部变量保留Gl

上述样本代码有一个局部变量“a”,但
当我从VLIDE“>工具>检查编辑器中的文本”运行代码时
为什么变量仍然是全局变量?
代码有问题吗?
 
非常感谢你的帮助。。

Tharwat 发表于 2022-7-5 23:31:35

它不是全局的,但由于您在子函数中使用了它,它会抛出友好的警告,这没有什么错。
要检查这一点,只需运行例程,然后在命令行中键入:!a来看看它是否有任何价值。
 
塔瓦特

MSasu 发表于 2022-7-5 23:36:23

请注意,如果在调用函数后对变量进行了本地化,则创建了一个同名的全局变量,该变量将在当前绘图期间可用。可能需要在新图形上再次尝试该功能。
 
关于代码逻辑的注释,如果保留了系统变量的当前状态,为什么只在出错时恢复,而不在正常退出时恢复?
(setq a (getvar "cmdecho"))
...
(setvar "cmdecho" 1)

Tharwat 发表于 2022-7-5 23:43:21

为了更安全地使用您在代码中所做的操作,请参阅以下调用。
 

(if a (setvar "cmdecho" a))

Snownut 发表于 2022-7-5 23:49:32

如果这有帮助的话,我已经有一段时间使用此函数在autocad运行时查找全局变量。
 
非常便于确保代码干净。
 
3

LanloyLisp 发表于 2022-7-5 23:58:09

 
谢谢Tharwat提供的信息。
通常在几乎所有情况下,发生错误时不会调用某些变量。。

Tharwat 发表于 2022-7-6 00:05:44

 
不客气。
 
 
你能举个例子吗?

LanloyLisp 发表于 2022-7-6 00:08:04

 
哦,我太粗心了。;我必须检查我的代码下一次之前张贴。

LanloyLisp 发表于 2022-7-6 00:20:42

 
中东又是一个白天黑夜。。。
希望我能举个例子。。
周末快乐!

Tharwat 发表于 2022-7-6 00:26:22

你说得对,对我来说,所有的日子都是一样的,所以别担心
页: [1]
查看完整版本: 局部变量保留Gl