Métodos e Expressões

Como vimos nos capítulos anteriores, toda computação em Smalltalk é ativada pelo envio de mensagens aos objetos do sistema. Ao receber uma determinada mensagem, um objeto ativa o método específico que realiza a computação correspondente.

Neste texto não usaremos qualquer notação formal para descrever a sintaxe ou a semântica da linguagem - para cada conceito será apresentada uma descrição informal seguida de alguns exemplos.

Métodos são algorítmos onde as ações são especificadas por uma sequência de expressões Smalltalk separadas entre si por um ponto, como abaixo (os símbolos entre colchetes são opcionais):

expressão.
expressão.
:
[^] expressão [.]

Cada expressão retorna sempre um único objeto como resultado. Expressões dentro de métodos podem ser precedidas opcionalmente pelo caractere ^ (caret). A execução do método termina quando uma expressão precedida do caret (^) é executada, ou após a execução da última expressão da sequência. Note que não existe em Smalltalk a noção de comando diferenciada da noção de expressão.

Como será visto adiante, um método é sempre ativado pela execução de uma expressão de mensagem, que consiste do envio de uma mensagem a um determinado objeto, que é chamado de receptor da mensagem. Essa expressão se reduzirá ao valor retornado pelo método após ele terminar sua execução. O valor que um método retorna será o valor da última expressão executada, caso esta seja precedida do caret. Caso a última expressão executada no método não seja precedida do caret, então o método retornará uma referência ao receptor.