×

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

Procs in Ruby

By IncludeHelp Last updated : December 01, 2024

Ruby Procs

We have gone through many traditional and conventional things in Ruby but procs is a new thing you will come across. We have seen how we can return value inside the Ruby method but we can also store method inside a variable with the help of Procs. This makes our code more flexible and readable. You can store an entire set of instructions or rules inside a variable and can call them anywhere as per the requirement.

Syntax of Procs

variable_name = Proc.new{|argument1,argument2|argument1+argument2}

I think that syntax made you pretty clear about the Procs. Procs can be simply defined with the help of a ".new" method. It requires a block inside which the entire set of the process will be defined. You can specify the argument list inside "||". Now, you will get clearer about it with the help of example which is given below,

var = Proc.new{|num1,num2,num3| num1+num2+num3}

p "The sum is #{var[1,3,4]}"

Output

"The sum is 8"

You can observe in the above code that we have created a proc inside the var variable. The purpose of proc is to calculate the sum of elements entered by the user. These elements are specified inside || and all the processing is done inside the { } block. We are simply calling proc with the help of square brackets and square brackets are having the actual parameters.

Procs are always created with the help of blocks. Blocks always help us to bind the behavior of the statements. There are two ways to create procs which are stated below,

With the help of curly braces

We have seen this in the above example where we are creating the proc with the help of curly braces. For your better reference, one more snippet is given below,

var = Proc.new{
  |num|
  i = 1 

  while(i<=10)
    p num * i
    i = i + 1
  end
}
var[12]

Output

12
24
36
48
60
72
84
96
108
120

With the help of do end block

procs are also be created with the help of do.. end block. This way makes the code more understandable. Let us understand this with the help of an example. Let us modify the above example in the following way,

var = Proc.new do |num|
  i = 1 
  while(i<=10)
    p num * i
    i = i + 1
  end
end
var[17] 

Output

17
34
51
68
85
102
119
136
153
170

You can call the procs in two ways: one by just writing the name of the variable and the other one is by using the call method. You can use the call method in the following way,

var = Proc.new {|a| a*5}
var.call(12)

Both methods will give you the same results. It is up to you which one you like most.

Comments and Discussions!

Load comments ↻





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