Conhecendo alguns objetos básicos

Conhecendo alguns objetos básicos

Doggie Daddy


Índice das lições


Smalltalk é uma linguagem orientada a objetos. Na verdade é a precursora. Quase tudo em Smalltalk é um objeto. Os objetos respondem a mensagens. Respondem retornando um objeto e podem manifestar um efeito colateral ao mesmo tempo. Como cada mensagem sempre retorna um objeto elas podem ser encadeadas.

Números

1, 2, 100, 2/3 são números. Os números são objetos. Podem responder a mensagens.

Experimente executar as expressões mostradas abaixo usando Print it para ver o que retornam de forma textual ou Inspect it para examinar o objeto em suas "entranhas".

Caracteres

Os caracteres são outro tipo básico. $A é o literal que representa o caractere A maiúsculo. São objetos também.

Experimente com as expressões abaixo envolvendo caracteres.

Strings

As strings são concatenações de caracteres. 'Sou uma string' é um literal que representa uma string. A string é ladeada por ' (apóstrofos).

Experimente com os exemplos de strings abaixo.

Símbolos

Os símbolos (Symbol) são parecidos com as strings. Seus literais são precedidos do caractere ##ProfStef é um símbolo. Só há um símbolo #ProfStef no ambiente, caso ele seja criado. No entanto você pode ter mais de uma string equivalente à string literal 'ProfStef'.

Experimente com os exemplos abaixo.

A mensagem == compara duas referências a objetos. Se são os mesmos objetos (estão no mesmo endereço de memória) retorna true. Caso contrário retorna false.

Arrays

Os arrays são conjuntos de objetos ordenados que podem ser manipulados de uma só vez ou através de acesso aos seus componentes.

#(1 2 3) é a forma literal para o array. A forma literal é precedida de um # com uma lista de também literais, separados por espaços, entre parênteses.

Experimente com os exemplos abaixo.

Note que a mensagem copy em #('hello' 'world') copy at: 2 put: 'Pharo'; yourself.. Os arrays literais no Pharo 9 são imutáveis e por isso só podemos alterar cópias deles.

Array dinâmico

Os arrays dinâmicos são ladeados por { e } e seus elementos não precisam ser literais e são separados por .. Os elementos podem ser literais, objetos ou expressões (na verdade os objetos retornados pela avaliação das expressões). { Date today. 5 factorial. 'ProfStef'. #ProfStef. 42 } é um exemplo de array dinâmico.

Nota: Array dinâmico não faz parte da especificação ANSI para o Smalltalk e por isso nem todo Smalltalk suporta arrays dinâmicos.
Nota adicional: O array dinâmico é um "açucar sintático"(Syntactic sugar) assim como o array literal da seção anterior. Ao inspecioná-los (Inspect it) tanto #(1 2 3) quanto {1. 2. 3} são mostrados como iguais.

Experimente com os exemplos abaixo.

Encerrando

Encerre a lição salvando a imagem.


Report Page