明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 738|回复: 1

[讨论] 子函数放置位置的探讨

[复制链接]
发表于 2021-8-19 17:31:56 | 显示全部楼层 |阅读模式
本帖最后由 gaics 于 2021-8-20 07:34 编辑
  1. (defun c:tt1 ()
  2.   (defun Subfunction ()
  3.     (princ "a")
  4.   )
  5.   (Subfunction)
  6.   (princ)
  7. );;tt1返回a
  8. (defun c:tt2 (/ Subfunction)
  9.   (defun Subfunction ()
  10.     (princ "b")
  11.   )
  12.   (Subfunction)
  13.   (princ)
  14. );;tt2返回b
  15. (defun c:tt3 ()
  16.   (Subfunction)
  17.   (defun bcd ()
  18.     (princ "c")
  19.   )
  20.   (princ)
  21. );;tt3返回a或c或e
  22. (defun c:tt4 (/ Subfunction)
  23.   (Subfunction)
  24.   (defun Subfunction ()
  25.     (princ "d")
  26.   )
  27.   (princ)
  28. );;tt4返回; 错误: no function definition: Subfunction
  29. (defun Subfunction ()
  30.   (princ "e")
  31. )


如上面的代码定义了5个同名子函数,tt1~4分别做不同的调用写法,返回不同的结果。

tt3返回值具有不确定性,取决于tt1、tt2以及放置在主函数外面的Subfunction哪个被最近调用过。
综上,推荐tt2的写法,既不怕子函数重名,而且对其他函数也没有影响。

各位,是否可以这么理解?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-8-20 06:49:18 | 显示全部楼层
把函数当变量符号看待,
使用前先赋值。需要私有化就私有化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-29 05:20 , Processed in 0.149139 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表