程序中`[1]`的功能是什么?

时间:2016-03-24 10:22:27

标签: ruby

class String
  def mgsub(key_value_pairs=[].freeze)
    regexp_fragments = key_value_pairs.collect { |k,v| k }
    gsub(Regexp.union(*regexp_fragments)) do |match|
      key_value_pairs.detect{|k,v| k =~ match}[1]
    end
  end
end

puts "GO HOME!".mgsub([[/.*GO/i, 'HoMe'], [/home/i, 'is where the heart is']])
puts "Here is number #123".mgsub([[/[a-z]/i, '#'], [/#/, 'P']])

1 个答案:

答案 0 :(得分:0)

key_value_pairs是一个数组数组,每个数组都是一对。 detect取出一个元素,即一个数组(对)。 [1]取出后者(第二)值。