1

splitアプリに次のコード行がありますが、関数のしくみを理解できません。行番号の左側にカンマで区切られた2つの変数があるのはなぜですか。8 で、この for ループは正確には何をしているのですか?

def execute_testcases
  file_names = []
  originalfile_filewithtime = []
  original_file_map = {}
  originalfile_filewithtime = params[:excelfile]
  puts originalfile_filewithtime

  for value in originalfile_filewithtime
    original_file, file_with_time = value.split(',') # THIS LINE
    original_file_map[file_with_time] = original_file
    file_names << file_with_time
  end

  # Some more code...
end
4

2 に答える 2

3

split文字列を配列に分割します。例えば:

foo = 'bar,baz'
foo.split(',') # => ["bar", "baz"]

等号の左側に 2 つ (またはそれ以上) の変数があり、右側に配列がある場合、Ruby は配列の要素を変数に割り当てます。例えば:

bar, baz = ['bar', 'baz']
puts bar # => "bar"
puts baz # => "baz"

あなたが求めている行は、次の 2 つの概念の組み合わせです。

foo = 'bar,baz'
bar, baz = foo.split(',')
puts bar # => "bar"
puts baz # => "baz"

for ループが Excel ファイル内の行を反復しているようですが、ここに投稿したコードから正確に判断することはできません。

于 2013-05-23T08:56:46.277 に答える
3

このsplit関数は、用語の配列を返します。

代わりに、返された用語を別の変数に格納することができます。

original_file, file_with_time = value.split(',')別の言い方です

split_values = value.split(',')
original_file = split_values[0]
file_with_time = split_values[1]
于 2013-05-23T09:01:37.957 に答える