我正在使用 Groovy 编写一个处理 BASIC 的 DSL,我想要一些关于如何处理多(多于 2 个)维数组的帮助。
我正在处理这样的基本代码:
100 LET X = A(1, 2, 3)
处理 1 维情况很容易 - 只需创建一个返回 A 元素的闭包(通过 MOP),而对于 2 维,我可以在表单中执行相同操作
A(2, 3) == A.get(2)[3]
但是如何处理无限维度的数组呢?
更新:为了更清楚一点,问题是如何在 DSL 上下文中动态返回数组值?脚本解释器将 A(1, 2, 3) 视为我可以使用 MOP 拦截的函数调用。但是如何在该上下文中返回数组元素的值?