所以,是的,有没有办法

[1, 2].each { puts _ }

而不是
[1, 2].each  { |i| puts i }

也许:
{ a: 1, b: 2 }.each { puts _1, _2 }

显然这些都是简单的例子,但是用它们编写一些脚本要容易得多。
也许现在为def _1; ...; end这样的对象扩展会更容易一些,但是我看不到将当前对象传递到块的方法。

最佳答案

这是我唯一能找到的东西

puts_m = method(:puts)
[1, 2, 3].each(&puts_m)
1
2
3
=> [1, 2, 3]

关于ruby - 更简洁的 ruby 块语法,例如:`[[1,2] .each {put _}`代替`[[1,2] .each {| i |放我}`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40283819/

10-13 04:20