Tutorial do Pharo.
Abra o tutorial em português do ProfStef na lição Tipos básicos: Array.
Arrays são objetos e podem receber mensagens como todo objeto. Representam um conjunto de objetos.
Inspecione as várias expressões para apreender detalhes sobre os retornos das expressões.
A inspeção de #(1 2 3) revela que o array contém 3 SmallIntegers.
A avaliação da expressão #( 1 2 3 #(4 5 6)) size retorna 4 (Print it). Uma inspeção revela que o quarto elemento é um Array.
Vamos nos concentrar na expressão #(‘hello’ ‘World’) at: 2 put: ‘Pharo’; yourself. As outras são razoavelmente evidentes.
A expressão #(‘hello’ ‘World’) at: 2 put: ‘Pharo’; yourself merece uma pequena explanação.
O ; (ponto e vírgula) entre as expressões #(‘hello’ ‘World’) at: 2 put: ‘Pharo’ e yourself é um operador de cascata e será alvo de uma lição posterior. Ele faz com que a mensagem yourself seja enviada ao objeto #(‘hello’ ‘World’) e não ao resultado da expressão #(‘hello’ ‘World’) at: 2 put: ‘Pharo’. yourself retorna o próprio objeto que recebeu a mensagem yourself que é, no caso, #(‘hello’ ‘World’) modificado que se tornou #(‘hello’ ‘Pharo’).
Sem o uso de yourself a expressão retornaria ‘Pharo’ e não poderíamos ver a modificação causada pela mensagem #at:put: no array original.
Nota:
Por convenção no Smalltalk a mensagem #at:put: retorna o segundo argumento em vez do objeto que recebeu a mensagem (o default no Smalltalk, como veremos no futuro).
Voltar à página do tutorial.