Ruby和Groovy中的块之间有什么显著的区别吗?
我在Ruby中使用块,并希望在Java中使用它们。Groovy似乎提供了类似的特性,但我对Groovy了解不够,无法理解在语法和功能上是否存在任何显著差异Ruby和Groovy中的块之间有什么显著的区别吗?,ruby,groovy,Ruby,Groovy,我在Ruby中使用块,并希望在Java中使用它们。Groovy似乎提供了类似的特性,但我对Groovy了解不够,无法理解在语法和功能上是否存在任何显著差异 Ruby块是否等同于Groovy块?不是100%。Ruby块要求您命名所有参数(据我所知)。Groovy中不指定参数的块有一个隐含参数,it从某种意义上说,块只是一个任意函数。我从未编程过java,但这里有一些其他语言的代码示例,向您展示了块与传递匿名函数类似 红宝石: Javascript: var add_5 = function(cal
Ruby块是否等同于Groovy块?不是100%。Ruby块要求您命名所有参数(据我所知)。Groovy中不指定参数的块有一个隐含参数,
it
从某种意义上说,块只是一个任意函数。我从未编程过java,但这里有一些其他语言的代码示例,向您展示了块与传递匿名函数类似
红宝石:
Javascript:
var add_5 = function(callback){
return callback.call() + 5;
}
add_5(function(){ return 20 });
// returns 25
卢阿:
换句话说,如果Java支持这样的匿名函数,那么你就有了一个障碍!因为它们是函数,所以它们可以接受参数,就像块一样。下面是另一个Lua示例:
local function add_something(callback)
callback(5 / 2);
end
add_something(function(a)
print(a + 5);
end)
-- 7.5
我对Ruby不是100%熟悉,但我认为答案是否定的。请看一下。不正确。Groovy确实支持块的命名参数。请参阅:Groovy当然支持块的命名参数。:-)我的意见是,在Groovy中,如果您的块使用一个参数,那么将其命名是可选的,而在Ruby中则是强制性的。
local function add_5(callback)
print(callback() + 5);
end
add_5(function()
return 20;
end)
-- returns 25
local function add_something(callback)
callback(5 / 2);
end
add_something(function(a)
print(a + 5);
end)
-- 7.5