gpt4 book ai didi

Groovy : why this code doesn't work ? 无法解析类

转载 作者:行者123 更新时间:2023-12-04 06:09:21 25 4
gpt4 key购买 nike

我有这个测试代码:

def p = [:]

p.foo = [:]

p.foo.bar = 120

p.foo.bar - 3

(p.foo.bar) + 3

为什么在最后一条语句中出现编译错误:“无法解析类 p.foo.bar”?

谢谢您的帮助

Groovy 版本 1.8.1

最佳答案

好的,我想我想通了。我针对您的示例脚本运行了 AST 浏览器(使用 GroovyConsole)。它只会在转换阶段显示输出。在这个阶段,您可以看到脚本是如何转换的。关键是最后一行转换成这样:

...
((1) as p.foo.bar)

这意味着,显然,它正在尝试强制转换或转换 1进入一个名为 p.foo.bar 的类.

您可以深入挖掘一下,看到解析器正在解析这样的语句:
(p.foo.bar)(+1)

这与
(p.foo.bar)1

因此,解析器/编译器看到 +作为一元 +运算符(operator)。这就是您收到错误的原因。 (绕过它的方法是删除括号,或交换参数的顺序!)

关于Groovy : why this code doesn't work ? 无法解析类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7948208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com