Ruby: Loop thru List
Loop thru a list.
# -*- coding: utf-8 -*- # ruby aa = ['one', 'two', 'three', 'infinity'] # loop thru a list aa.each { # opening curly bracket must be on this line, else syntax error. |xx| # each element is set to a dummy variable xx p xx # prints xx }
In the above, the “each” is a method for list object. This method takes a “block” argument in the form of { … }
.
A Ruby “block” typically has the form { |var| … }
OR do |var| … end
, where the var is a dummy variable. Ruby's “block” is similar to lambda (aka anonymous function).
When a method takes a “block”, you can think of it as taking a pure function written in the form { |var| body }
.
Loop thru a list, get both index and value.
# -*- coding: utf-8 -*- # ruby aa = ['one', 'two', 'three', 'infinity'] # loop thru a list and gets its value and index aa.each_with_index do |vv, ii| # first item is value p vv, ii # print value and index end
The following construct loops thru a dictionary, each time assigning both keys and values to variables.
# -*- coding: utf-8 -*- # ruby hh = { :john => 3, :mary => 4, :joe => 5, :vicky => 7} # loop thru a hash, and get key and value hh.each do |kk,vv| p kk, vv # print key and value end =begin prints :john 3 :mary 4 :joe 5 :vicky 7 =end