2012-03-31 9 views
0

多くの場合、引数の形式に柔軟性を持たせ、単一の配列引数または複数の引数を1つの配列としてまとめて処理する必要があります。したがって、次の2つの使用法は同じことになります。複数の引数または単一の配列引数を許可する

foo([arg1, arg2, ...]) 
foo(arg1, arg2, ...) 

、このような方法を実施するための最良の方法は何ですか?

def foo(*bar) 
    bar.flatten! 
    p bar #or whatever 
end 

これが入っているものに関係なく、あなたはそれのうち、単一のフラット配列を取得することを保証します。このことについてどのように

+1

ユーザーはどのように配列である単一のパラメータを渡すのですか? –

+0

@MladenJablanović私は、些細な議論、すなわち、長さが1の配列に対応するものは渡されないことを暗黙のうちに思い出しました。しかし、それは私が思ったようにきちんとした考えではないかもしれません。 – sawa

答えて

2

+0

これは、各要素がそれ自身が配列である場合、わずかな問題があります。 – sawa

+0

それはどんな問題でしょうか?単一の配列以外のものを出力したいですか?あなたは単一のアレイを求めたので。 –

+0

いいえ、 'bar'はもともと[[arg1]、[arg2]、[arg3]、...]'であったとき、 '[arg1、arg2、arg3、...] '。 – sawa

関連する問題