Ruby Hash Tutorial

1. Introduction

In Ruby, a Hash is a collection of key-value pairs where each unique key maps to a value. Hashes are similar to dictionaries in other languages and provide an efficient way to store and look up data.

Common Methods:

1. []: Retrieve value by key.

2. []=: Set value by key.

3. keys: Retrieve all keys.

4. values: Retrieve all values.

5. each: Iterates over key-value pairs.

6. delete: Removes a key-value pair by key.

7. has_key?: Check if a key exists.

8. has_value?: Check if a value exists.

9. fetch: Get a value by key, with an optional default.

10. merge: Combines two hashes.

11. length: Returns the number of key-value pairs.

12. clear: Removes all key-value pairs.

2. Program Steps

1. Initialize a sample hash.

2. Apply and demonstrate the common methods on the initialized hash.

3. Code Program

# Initialize a sample hash sample_hash = { "name" => "John", "age" => 30, "city" => "New York" } puts "Original Hash: #{sample_hash}" # 1. Retrieve the value for "name" name = sample_hash["name"] # 2. Set a value for "profession" sample_hash["profession"] = "Engineer" # 3. Get all keys all_keys = sample_hash.keys # 4. Get all values all_values = sample_hash.values # 5. Iterate over key-value pairs sample_hash.each do |key, value| puts "Key: #{key}, Value: #{value}" end # 6. Remove key "city" sample_hash.delete("city") # 7. Check if "age" key exists has_age = sample_hash.has_key?("age") # 8. Check if value "John" exists has_john = sample_hash.has_value?("John") # 9. Fetch value for "country" with a default country = sample_hash.fetch("country", "Unknown") # 10. Merge two hashes additional_info = { "gender" => "Male", "hobbies" => "Reading" } merged_hash = sample_hash.merge(additional_info) # 11. Get number of key-value pairs num_of_pairs = sample_hash.length # 12. Clear the hash sample_hash.clear puts "\nTransformed Hash:" puts "Name Value: #{name}" puts "All Keys: #{all_keys}" puts "All Values: #{all_values}" puts "Has Key 'age': #{has_age}" puts "Has Value 'John': #{has_john}" puts "Country (with default): #{country}" puts "Merged Hash: #{merged_hash}" puts "Number of Key-Value Pairs: #{num_of_pairs}" puts "Cleared Hash: #{sample_hash}" 

Output:

Original Hash: {"name"=>"John", "age"=>30, "city"=>"New York"} Key: name, Value: John Key: age, Value: 30 Key: city, Value: New York Transformed Hash: Name Value: John All Keys: ["name", "age", "profession"] All Values: ["John", 30, "Engineer"] Has Key 'age': true Has Value 'John': true Country (with default): Unknown Merged Hash: {"name"=>"John", "age"=>30, "profession"=>"Engineer", "gender"=>"Male", "hobbies"=>"Reading"} Number of Key-Value Pairs: 3 Cleared Hash: {} 

Explanation:

1. The [] method retrieves the value associated with a given key.

2. The []= method assigns a value to a specified key.

3. keys returns all the keys in the hash.

4. values returns all the values in the hash.

5. each allows you to iterate through each key-value pair.

6. delete removes the key-value pair for the given key.

7. has_key? checks if a key exists in the hash.

8. has_value? checks if a certain value exists in the hash.

9. fetch retrieves a value for a given key, but allows for a default value if the key isn't found.

10. merge combines two hashes together.

11. length returns the number of key-value pairs.

12. clear removes all key-value pairs from the hash.


Comments