繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM