0

Ruby には 2 つのメソッドがあります。

def reverse(first,second)
   @items[first..second]=@items[first..second].reverse 
end

と:

def reverse
  @items.reverse! 
end

これらを 1 つの関数にまとめてif first.nil? && second.nil?条件を使用することはできますか、それともそのままにしておく方がよいでしょうか?

4

1 に答える 1

11

最初のオプションは、デフォルト値のパラメーターを使用することです。

def reverse(first = nil, second = nil)
  if first && second
    @items[first..second]=@items[first..second].reverse
  else
    @items.reverse! 
  end
end

2 番目のオプションは、可変数の引数を使用することです。

def reverse(*args)
  if args.length == 2
    @items[args.first..args.last]=@items[args.first..args.last].reverse
  else
    @items.reverse! 
  end
end
于 2013-03-27T19:00:47.520 に答える