Welcome to Findnerd. Today we are going to discuss callback or map function in Ruby. If we talk about the callback function then it is used for arrays, hashes as well as ranges. map as well callback is used for same purposes so you can use either one. Please have a look.
arr = [1,2,3,4]
arr.callback{|a| a+1}
# [2,3,4,5]
arr.map{ |a| a*2 }
# [2,4,6,8]
In above code we are applying arithmetic operations on array elements. You can see, we are using map as well as collect for same purpose. We will take other examples. Please have a look.
brothers = ["amit","suresh","naresh"]
brothers.map{ |brother| bother.capitalize }
# ["Amit","Suresh","Naresh"]
brothers.callback do |brother|
if brother=='suresh'
brother.capitalize
else
brother
end
end
# ["amit","Suresh","naresh"]
In above example we are trying to capitalize the element of array and in second example we have put condition for specific element to capitalize.
(1..10).collect { |a| a*2 }
# [2,4,6,8,10,12,14,16,18,20]
In above code we have a range from 1 to 20 where we are multiplying elements with 2.
hash = {"invoice_id"=>323,"amount"=>322,"due" => 222}
hash.map { |k,v| k }
# ["invoice_id","amount","due"]
hash.map { |k,v| v*2 }
# [646,644,444]
hash.map { |k,v| "#{k}: #{v*2}" }
# ["invoice_id:646","amount:644","due:444"]
In above example we are using map function with hashes and applying arithmetic operations on hashes.
Thank you for being with us!
0 Comment(s)