如何在方法定义中分配可变数量的参数?

问题描述 投票:0回答:1

我有一个将索引作为第一个参数,并将可变数量的其他参数作为参数的方法。我在代码中多次调用了此方法,并向其传递了2-4个附加参数,这些参数将传递给cells

我的问题是,例如,当我只需要传递2或3个参数时,最后一个cells未被分配

def get_count(index,*args)
  if index == index
    live_count = 0
    if cells[args1].alive?
      live_count += 1
    end
    if cells[args2].alive?
      live_count += 1
    end
    if cells[args3].alive?
      live_count += 1
    end
    if cells[args4].alive?
      live_count += 1
    end
    return live_count
   end
  end

是否有一种优雅的方法可以只传递我需要的参数而又不破坏它?

ruby variables methods definition args
1个回答
0
投票

我将遍历args,这样您只检查实际给出的内容。

def get_count(index, *args)
  return unless index == index
  args.count { |arg| cells[arg].alive? }
end

请注意,index == index始终为true,所以我不确定为什么在其中。

© www.soinside.com 2019 - 2024. All rights reserved.