×

Ruby Tutorial

Ruby Basics

Ruby Control Statements

Ruby Methods

Ruby Classes and Methods

Ruby Arrays

Ruby Sets

Ruby Strings

Ruby Classes & Objects

Ruby Hash

Ruby Tools

Ruby Functions

Ruby Built-in Functions

Misc.

Ruby Programs

Ruby Hash.default_proc Method

By IncludeHelp Last updated : December 01, 2024

In this article, we will study about Hash.default_proc Method. The working of this method can be predicted with the help of its name but it is not as simple as it seems. Well, we will understand this method with the help of its syntax and program code in the rest of the content.

Description and Usage

This method is a public instance method that is defined in Ruby library especially for Hash class. This method works in a way that if the hash new method has been invoked with a block then it will return that block when the default_proc() method has been invoked. This method will return nil if the new method has been invoked without passing any block. You will understand the concept in a broader way when you will go through its examples.

Syntax

Hash_object.default_proc

Parameters

This method does not require any argument.

Example 1

=begin
  Ruby program to demonstrate default_proc method
=end	

h = Hash.new {|h,k| h[k] = k*k }

puts "default_proc implementation:"   

p = h.default_proc                 
a = []                             

puts "#{p.call(a, 2)}"
puts "The elements in 'a' array are: #{a}" 

Output

default_proc implementation:
4
The elements in 'a' array are: [nil, nil, 4]

Explanation

In the above code, you can observe that we are invoking a new method along with the block and that block is doing nothing rather than returning the double of the element passed. When we are calling the proc p which is containing the default proc value of Hash object along with the index and block value than at the time of printing the array, we are getting the block returned value stored at the index position.

Example 2

=begin
  Ruby program to demonstrate default_proc method
=end	

h = Hash.new 

puts "default_proc implementation:"   

p = h.default_proc                 
a = []                             

puts "#{p.call(a, 2)}"
puts "The elements in 'a' array are: #{a}"            

Output

default_proc implementation:
undefined method `call' for nil:NilClass
(repl):12:in `<main>'

Explanation

In the above code, you can observe that when the new method is invoked without a block then the variable 'p' is not considered as a proc because the hash default_proc method has returned 'nil'.

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.