def [](a,b=nil)
      if b || a.is_a?(Range) then
        slice(a,b)
      else
        at(a)
      end
    end
def [](a,b=nil)
      if b || a.is_a?(Range) then
        slice(a,b)
      else
        at(a)
      end
    end
Convenience access of values in the row.
 Can either be used like Array#[], i.e. it accepts an offset,
 an offset + length, or an offset-to-offset range.
 Alternatively you can use a Symbol, if it's a valid accessor in this table.
 And the last variant is using a String, which will access the value of
 the corresponding header.

 @return [Array, Object] Either the value of a given cell, or an array of values.

 @see #slice for a faster way to use ranges or offset+length
 @see #at_accessor for a faster way to access by name
 @see #at_index for a faster way to access by index
 @see #at_header for a faster way to access by header value