Expressões de Bloco
Um Bloco é um objeto formado por uma sequência de expressões
separadas por um ponto, e delimitada por um par de colchetes. Por exemplo:
Como objeto, um bloco pode ser referenciado por variáveis, e pode
reagir a mensagens específicas. A expressão
faz a variável x referenciar o bloco acima.
Um bloco ativa as expressões em seu interior ao receber a mensagem
unária value. Por exemplo, após a atribuição
acima, a expressão
terá como efeito a execução das expressões do bloco.
Como outro exemplo, se E é uma expressão qualquer, então as expressões E e [E] value são equivalentes.
Quando um bloco recebe a mensagem value, o valor resultante, ou resposta, é o resultado da última expressão da sequência que compõe o bloco.
Bloco vazio: o resultado do envio da mensagem value a um bloco vazio é nil, ou seja, [ ] value tem o valor nil.
Argumentos de blocos: blocos podem ter argumentos, que funcionam como
variáveis locais. A forma de um bloco com argumentos é o
seguinte:
onde v1, v2, ....,vn são nomes de argumentos locais do bloco. Blocos com argumentos são usados em estruturas de controle que realizam iterações sobre coleções de objetos, e são examinados no capítulo na seção sobre Coleções.