如何确保方法返回一个数组,即使Ruby中只有一个元素

我有一个Ruby方法,它搜索哈希数组并返回该数组的子集.

  def last_actions(type = 'all')
    actions = @actions

    if type == 'run'
      actions = actions.select {|a| a['type'] == "run" }
    end

    return actions

  end

这是有效的,除非只有一个动作要返回,在这种情况下我不认为它返回一个包含一个元素的数组,而只是返回元素本身.
这在以后会成为问题.

在这种情况下,确保它返回1个元素的数组有什么好方法?

谢谢.

最佳答案
select总是返回一个数组(除非你在块内部破坏,否则你不会).所以无论你的代码出了什么问题,这都不是原因.

当然,如果@actions不包含数组(或其他类型的Enumerable),对select的调用将导致异常,并且该方法根本不会返回任何内容.在这种情况下,解决方案是确保@actions始终返回一个数组.如何做到这一点取决于你设置@actions的位置/方式.

转载注明原文:如何确保方法返回一个数组,即使Ruby中只有一个元素 - 代码日志