Merge pull request #7 from bayendor/54145639_about_strings_master

 Fix about_strings.rb

[Delivers #54145639]
Fix about_hashes.rb

* Create w/Hash.new .class == Hash

* Empty hash == {}, .size 0

[#54145635]
Fix about_hashes.rb

* A hash element is the hash key and the value:
  :key => "value"

* The pair is one element when doing .size

[#54145635]
Fix about_hashes.rb

* Access hash by key :key

* Non existent key returns nil

[#54145635]
Fix about_hashes.rb

* Use .fetch(:key) to access hash values

* Unlike [], .fetch returns KeyError, instead of
  nil, indicating an invalid Key, not an empty
  hash

[#54145635]
Fix about_hashes.rb

* Hashes can be changed by using the key:
  hash[:key] = "new_value"

[#54145635]
Fix about_hashes.rb

* Hashes compare based on key pair values, unlike
  regular arrays which compare on values in index
  order.

[#54145635]
Fix about_hashes.rb

* Hash keys respond to methods .size, include?

* hash.keys.class = Array

[#54145635]
Fix about_hashes.rb

* Hash values can also be inspected with
  methods .include?, .size

* Hash values are also .class = Array!

[#54145635]
Fix about_hashes.rb

* When using .merge on hash, values with the
  the same key overwrite old values.

* Also, .merge will add new key:value pair to
  a hash.

[#54145635]
Fix about_hashes.rb

* A default value upon hash creation is
  assigned to the next available key without 
  a value, or when the key asked for is 
  unassigned.

[#54145635]
Fix about_hashes.rb

* Default values are the same object!

[#54145635]
Fix about_hashes.rb

* Default_value w/block:
    Hash.new {|hash, key| hash[key] = [] }

* Makes [] the new default value for any
  new undefined :key.

[#54145635]