Home Segments Index Top Previous Next

382: Mainline

One way to add up the elements in an Array instance is to send the array the do: message with a block as an argument. The following shows what the appropriate block looks like, given that the array is assigned to Calories, a global variable, and that sum, a local variable, is initially assigned to 0:

Calories do: [:element | sum := sum + element]. 

Observe that blocks sent along with the do: message have a parameter reminiscent of the parameter blocks involved in to:do: messages, which you learned about in Segment 307. The receiver, an array, handles such a block by evaluating the block as many times as there are elements in the array. Each such evaluation is done with a different array element assigned to the parameter. Thus, do: expressions perform computations that center on enumeration.