如果涉及到块,如何在对象上调用多个方法?

时间:2014-03-23 21:18:58

标签: ruby

假设字符串参数可能包含整数:

def turn_string_into_integer_array(string)
    array = string.split(" ").collect { |i| i.to_i }
end

如果在同一行中我想使用inject方法对整数求和,我将如何做到这一点,因为我在语句的末尾有一个块?

2 个答案:

答案 0 :(得分:2)

您可以使用句号

将其链接到块的末尾
def turn_string_into_integer_array(string)
  string.split(" ").collect { |i| i.to_i }.inject(:+)
end

答案 1 :(得分:1)

为什么不直接调用该方法?

string.split(" ").collect { |i| i.to_i }.inject(0) {|acc, el| acc + el }

然而,这将更加惯用地写为

string.split(" ").map(&:to_i).inject(0, :+)