从非JavaRuby到Groovy:语言差异
用我不太出色的谷歌技能,我还没能找到一个适合Ruby程序员的Groovy教程。有很多政治作品(Ruby很棒!Groovy很棒!)和微小的对比,但我真的不在乎哪个更好。我对Ruby(和Java)比较了解,我想学习Groovy 是否有人愿意(提供一个惊人的链接或)标记这两种语言在如何操作(语法、类声明、循环、块等)方面的一些差异?出于我的目的,您可以假设完全具备Java能力来解释 再说一次,我不想知道哪个更好。只需要知道如何做事……你看到和了吗? 相对较短的帖子,我知道。你是对的;似乎没有太多从非JavaRuby到Groovy:语言差异,java,ruby,groovy,Java,Ruby,Groovy,用我不太出色的谷歌技能,我还没能找到一个适合Ruby程序员的Groovy教程。有很多政治作品(Ruby很棒!Groovy很棒!)和微小的对比,但我真的不在乎哪个更好。我对Ruby(和Java)比较了解,我想学习Groovy 是否有人愿意(提供一个惊人的链接或)标记这两种语言在如何操作(语法、类声明、循环、块等)方面的一些差异?出于我的目的,您可以假设完全具备Java能力来解释 再说一次,我不想知道哪个更好。只需要知道如何做事……你看到和了吗? 相对较短的帖子,我知道。你是对的;似乎没有太多 更新
更新:更多。如果你了解Java,你能读到的最好的东西就是在Groovy中如何使用元类。这里有一个合理的解释: 只要记住Groovy中的所有内容都是通过元类运行的。看似简单的陈述:
a = foo.bar
bar = b
foo.baz(1,2,3)
大致翻译成以下Java:
a = foo.getMetaClass().getProperty("bar");
this.getMetaClass().setProperty("bar",b);
foo.getMetaClass().invokeMethod("baz",new Object[] {1,2,3});
一切都是通过元类调度的,这就是Groovy“语言”特性的工作方式。最重要的特征可能是。关于闭包,您需要记住的是,这都是元类的诡计。闭包的元类可以设置为尝试调用其委托上的方法/解析属性,这基本上意味着您可以在没有该方法的对象上调用方法。Java和Groovy之间的差异小于Ruby和Groovy之间的差异,因此如果您同时了解Ruby和Java,寻找一本“面向Java程序员的Groovy”书籍或教程可能更有意义
在我看来,市场上最好的Groovy书籍是。这是我所知道的最新的一本书(尽管在最新版本之后还有一些版本),非常简洁,并且涵盖了一些相对高级的主题(例如元对象协议)。我们需要更多类似这样的问题。在这个问题提出三年后,关于这两种相似语言之间的迁移,仍然缺乏比较的信息 我确实发现了这张幻灯片分享演示文稿,它涵盖了很多基本内容
WillGroovy wiki有一篇很好的文章,标题是。不是对这个问题的答案,但很有帮助,所以+1:)同上,不是回答问题,但对任何进入Groovy的人都没有太大帮助。。。像我一样;-)所以+1谢谢,我现在正在读一本关于Groovy的好书,但是生活中有比学习更多的东西。还有记忆。我需要一个Ruby和Groovy之间的差异列表,以便现在和将来都能保持一致。不过,在某个时候,我会列出这个列表,并在这个问题中添加一个链接。出于好奇,什么是“关于Groovy的优秀书籍”?嗨@don抱歉,我从来没有看到过这本书,因为它没有被提及,现在我不知道;)希望一切顺利!这与这个问题不太相关。我不确定这怎么与你的问题不相关。本文讨论了groovy语法,并假设您熟悉Java—例如,比较Java和groovy之间的属性设置。此外,如果您想阅读现有groovy源代码并彻底理解它,了解习惯的groovy编程风格将非常重要。