gpt4 book ai didi

groovy - 为什么在这里不将类名大写会导致编译器错误?

转载 作者:行者123 更新时间:2023-12-04 18:05:52 26 4
gpt4 key购买 nike

这个 Groovy 脚本运行良好:

println 0;
class MyClass
{
public MyClass(int j) {};
public MyClass method() {return this};
}

这个失败并出现编译错误(“意外 token :第 5 行,第 4 列公开”)
println 0;
class myClass
{
public myClass(int j) {};
public myClass method() {return this};
}

唯一的区别是类名的大写。我知道约定是类名要大写,但我认为这只是一个约定。究竟是什么导致了编译错误?

最佳答案

根据 Groovy mailing list thread从 2008 年提出类似问题开始,Paul King 解释说:

Yes, the grammar currently looks for uppercase types only in declarations (apart from the primitive types).



最近, unresolved Groovy JIRA ticket关于小写的类名,blackdrag 评论说:

The problem is that in Groovy (unlike Java) variable names, method names and class names can share a context, making it ambiguous.



除非对标记器进行更深入的探索,否则由于 Groovy 的语法灵活性,我将把它归结为 Java 和 Groovy 之间的另一个小不一致。 Groovy 并没有彻底实现在这种上下文中判断标记是类型还是方法名称的方法,而是采用了捷径,并且仅在标记匹配原始类型或以大写字母开头时才假定它可以是类型名称,如传统的 Java 类型会。

关于groovy - 为什么在这里不将类名大写会导致编译器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28116915/

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