红宝石适用看跌数组
对于数组中的元素回应,我可以做红宝石适用看跌数组
[1,2,3].each(&:to_s) 方法,但对于:
[1,2,3].each {|i| puts i} 我不能这样做:
[1,2,3].each(&:puts) 如何优雅地将Kernel方法(如puts)应用于数组中的对象?会不会有Rubyish的方式?
回答:
puts是一种方法,在定义Kernel将其转换为proc,使用:
[1,2,3].each(&method(:puts)) Symbol#to_proc有特定的含义,基本上本身发送到接收器。
有人可能的任何方法转化为proc通过它来阻止:
%w[1 2 3].map(&method(:Integer)) #⇒ [1, 2, 3]
回答:
你的最后一个例子是惯用的红宝石:
[1,2,3].each { |x| puts x } 当然,还有其他方法可以做到同样的事情,但上面的代码很简单,任何Rubyist都很容易理解。
以上是 红宝石适用看跌数组 的全部内容, 来源链接: utcz.com/qa/267247.html

