1

我在应用程序中有以下代码行,但我无法理解该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
4

2 回答 2

3

split将字符串拆分为数组。例如:

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

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

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 文件中的行,但它的确切作用无法从您在此处发布的代码中确定。

于 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 回答