我试图将一些for-each循环更改为lambda forEach()
-methods以发现lambda表达式的可能性.以下似乎是可能的:
ArrayList<Player> playersOfTeam = new ArrayList<Player>();
for (Player player : players) {
if (player.getTeam().equals(teamName)) {
playersOfTeam.add(player);
}
}
Run Code Online (Sandbox Code Playgroud)
随着lambda forEach()
players.forEach(player->{if (player.getTeam().equals(teamName)) {playersOfTeam.add(player);}});
Run Code Online (Sandbox Code Playgroud)
但下一个工作不起作用:
for (Player player : players) {
if (player.getName().contains(name)) {
return player;
}
}
Run Code Online (Sandbox Code Playgroud)
与lambda
players.forEach(player->{if (player.getName().contains(name)) {return player;}});
Run Code Online (Sandbox Code Playgroud)
最后一行的语法有问题还是不可能从forEach()
方法返回?
我有一个类似的问题在这里描述:
在我的应用程序中,用户可以将内容上传到一个也提供给用户的文件夹
Spark.staticFileLocation("/public");
Run Code Online (Sandbox Code Playgroud)
特征.我知道SparkJava在启动时只读取该文件夹中的"静态"内容,并且不知道那里的更改.是否可以通过Spark请求Spark(或Jetty)重新加载静态文件夹中的更改?
这个工作:
Beer.all.send(:sort)
Run Code Online (Sandbox Code Playgroud)
它也适用于块:
Beer.all.sort_by{|b| b.name}
Beer.all.sort_by(&:name)
Run Code Online (Sandbox Code Playgroud)
但是,当我给这样的send-method提供一个可执行块时:
Beer.all.send(:sort_by{|b| b.name})
Beer.all.send(:sort_by(&:name))
Run Code Online (Sandbox Code Playgroud)
我得到语法错误.Ruby中是否有任何替代方法可以为send-method提供可执行块?