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