Double square brackets in Ruby

2019-06-26 21:20发布

问题:

Given the following code:

def map(char, charmap)
    unless map = charmap[[char]]
     unless map = charmap[[char, c = input.getc]]
       input.ungetc(c) if c
       map = ''
     end
    end
  map
end

What is the double square brackets doing?

Thanks

回答1:

It is application of the method [] taking an array as the argument.

Since the OP did not make clear, we cannot tell what charmap is, but for example if it were a hash, then charmap[[char, c = input.getc]] would return the value in charmap that corresponds to the key [char, input.getc].