[英]How can I call multiple methods on an object if there are blocks involved?
假设字符串参数可能包含整数:
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, :+)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.