如何在Dyalog APL中获取当前命名空间名称?支持函数与命令行场景
在Dyalog APL中获取当前命名空间名称(类似Linux的pwd命令)
直接在命令行中获取
- 使用系统变量
⎕THIS获取当前命名空间的引用,转为字符串即可得到完整路径:
示例:根命名空间执行返回⍕⎕THIS#,进入子命名空间#.myNS后执行返回#.myNS。 - 也可以直接用会话命令
:pwd,输入后直接打印当前命名空间的完整路径::pwd
在函数中获取当前命名空间
函数内部同样通过 ⎕THIS 获取,转成字符串后即可用于逻辑处理:
GetCurrentNSName←{⍕⎕THIS}
调用该函数时,会返回执行时所在命名空间的完整路径。比如在 #.utils 命名空间中调用,会返回 #.utils。
注意:⎕THIS 是动态指向的——如果函数被其他命名空间调用,返回的是调用方所在的命名空间,而非函数定义的命名空间。若需获取函数定义所在的命名空间,可结合 ⎕SI 相关属性,但多数场景下 ⎕THIS 已能满足类似 pwd 的需求。
内容的提问来源于stack exchange,提问作者johnnynb
相关产品推荐
相关产品推荐

