Ruby 如果涉及到块,如何对一个对象调用多个方法?
假设字符串参数可能包括整数:Ruby 如果涉及到块,如何对一个对象调用多个方法?,ruby,Ruby,假设字符串参数可能包括整数: def turn_string_into_integer_array(string) array = string.split(" ").collect { |i| i.to_i } end 如果在同一行中,我想使用inject方法对整数求和,如果语句末尾有一个块,我该怎么做 只需在块的末尾加上一个句点即可 def turn_string_into_integer_array(string) string.split(" ").collect { |i
def turn_string_into_integer_array(string)
array = string.split(" ").collect { |i| i.to_i }
end
如果在同一行中,我想使用inject方法对整数求和,如果语句末尾有一个块,我该怎么做 只需在块的末尾加上一个句点即可
def turn_string_into_integer_array(string)
string.split(" ").collect { |i| i.to_i }.inject(:+)
end
你为什么不直接调用这个方法呢
string.split(" ").collect { |i| i.to_i }.inject(0) {|acc, el| acc + el }
然而,这将更习惯地写为
string.split(" ").map(&:to_i).inject(0, :+)
string.split(“”)。收集(&:to_i)。注入(:+)
。。这就是你想要的吗?我必须使用这个符号吗?或者你可以在Do/end或{}符号之后继续吗?与string.split(“”)相同。collect{I | I.to_I}.inject(:+)
@ArupRakshit在注释中不回答。这就是下面问题的答案。@MBO正确!!我不知道我的案子里会出现鬼错误。。因此我在这里回答。。我无法提交该问题。我在评论中提交了..:P