使用我不出色的Google技能,我无法为Ruby程序员找到一个体面的Groovy教程。有很多政治因素(Ruby太棒了!Groovy很棒!)和微小的对比,但我真的不在乎哪个更好。我比较熟悉Ruby(和Java),我想学习Groovy。
是否有人关心(或提供一个惊人的链接或)标记两种语言在如何做事情(句法,类声明,循环,块等)方面的一些差异?为了我的目的,你可以假设完整的Java能力来解释。
同样,我不知道哪个更好。只需要知道怎么做......
答案 0 :(得分:5)
如果您了解Java,那么您可以阅读的最好的事情是如何在Groovy中使用metaClass。这是一个不错的解释:http://skillsmatter.com/downloads/Groovy%20User%20Group%20December%202006.pdf
请记住,Groovy中的所有内容都通过metaClass运行。看似简单的陈述:
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});
所有内容都通过metaClass发送,这是几乎所有Groovy“语言”功能的工作原理。最重要的功能可能是closures。关于闭包你需要记住的是它都是metaClass的诡计。闭包的metaClass可以设置为尝试在其委托上调用方法/解析属性,这基本上意味着你可以做一些事情,比如在没有该方法的对象上调用方法。
答案 1 :(得分:2)
答案 2 :(得分:2)
我们需要更多像这样的问题。问题发生三年后,关于这两种类似语言之间的这种移动仍然存在比较缺乏的信息。
我确实找到了这个Slide Share演示文稿,其中涵盖了很多基础知识。
这篇博文对'简单'的东西有帮助,因为它提供了更多背景知识:
在语言之间切换的原因通常更多地与项目需求有关而不是语言本身,我觉得它能够在工具之间进行交换和比较。
此类问题的一个标准资源是: Rosetta Code 。
希望看到更多提示添加到此列表中。
干杯, 将
答案 3 :(得分:1)
Java和Groovy之间的差异小于Ruby和Groovy之间的差异,所以如果你既了解Ruby又有Java,那么寻找“Groovy for Java程序员”一书或教程可能更有意义。
IMO,市场上最好的Groovy书籍Programming Groovy。这是我所知道的最新书(虽然仍然是最新版本背后的几个版本),非常简洁,并且在很多细节上涵盖了一些相对高级的主题(例如元对象协议)。
答案 4 :(得分:0)
Groovy wiki有一篇很好的文章,名为Groovy style and language feature guidelines for Java developers。