Merge pull request #6 from ArGroves/54146063_about_array_assignment_master

about array assignment master

[Delivers #54146063]
Passed a test in about_hashes.rb

- Hashes can be created, just like every other object.

[#54146065]
Passed a test in about_hashes.rb

- Hashes can be defined with the literal {key => value}

[#54146065]
Passed a test in about_hashes.rb

- Hash values can be accessed in the same way as an array index
  would be. Accessing keys that the hash doesn't have returns nil.

[#54146065]
Passed a test in about_hashes.rb

- The fetch method also gets values from their keys, but raises a
  KeyError if the key doesn't exist, making it more debug-able.

[#54146065]
Passed a test in about_hashes.rb

- Values can be reassigned by assigning hash[key]. I guess the
  expected variable is there for code readability.

[#54146065]
Passed a test in about_hashes.rb

- Hashes have no order. Any two hashes with the same contents are
  equal.

[#54146065]
Passed a test in about_hashes.rb

- Hash.keys returns an array of keys for that hash. It can be
  manipulated like a normal array.

[#54146065]
Passed a test in about_hashes.rb

- Hash.values can be used in a similar fashion, returning an array of
  values.

[#54146065]
Passed a test in about_hashes.rb

- Hash.merge combines two hashes, overwriting the values where the
  same key exists in both hashes.

[#54146065]
Passed a test in about_hashes.rb

- Hashes can be created with a default value that is returned instead
  of nil when a key doesn't exist.

[#54146065]
Passed a test in about_hashes.rb

- Beware: The default value is only instantiated once, then used
  for all nonexistant keys. This can produce strange results with
  e.g. arrays.

[#54146065]
Passed a test in about_hashes.rb

- Using a default defined by a block will instantiate a new object
  for each key, neatly getting around the aforementioned problem.

[#54146065]