split函数如何与多个变量结合使用?

时间:2013-05-23 08:50:56

标签: ruby-on-rails ruby split

我在应用程序中有以下代码行,但我无法理解split函数的工作原理。我的意思是为什么有两个变量用行号左边的逗号分隔。 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

2 个答案:

答案 0 :(得分:3)

split将字符串拆分为数组。 E.g:

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

如果在等号的左边有两个(或更多)变量,右边有一个数组,Ruby会将数组的元素分配给变量。 E.g:

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

您要问的问题是这两个概念的组合:

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

似乎for循环正在Excel文件中的行上进行迭代,但它的确无法从您在此处发布的代码中确定。

答案 1 :(得分:3)

split函数返回一个术语数组。

您可以将返回的字词存储在单独的变量中,如您的情况。

original_file, file_with_time = value.split(',')是另一种说法

split_values = value.split(',')
original_file = split_values[0]
file_with_time = split_values[1]